jQuery,javascript,在页面上找到所有独特的链接

时间:2018-01-26 01:24:27

标签: jquery arrays

我正在尝试这样做:

   var items = $("main a").unique();
   var links = [];
   items.each(function (index, value)
   {
        links.push({
            href: this.href, 
            text:  this.text
        });
   });

这个想法是找到页面上的所有链接并删除重复项,生成一个带有href / text对的对象。但上面不起作用,我得到“TypeError:$(...)。unique is not a function”

2 个答案:

答案 0 :(得分:2)

您正在正确呼叫$.unique()。它不是jQuery对象的方法,它是一个实际的函数。你真的想要:

$.uniqueSort($("main a"))

另外,学会使用.map()而不是推送数组:

var links = $.uniqueSort($("main a")).map(function(idx, e) {
    return {href: e.href, text: e.text}
})

(注意:这个.map()是jQuery版本,其中回调的第一个参数是数组/对象的索引而不是数组元素,因为应用于jQuery对象的$.uniqueSort()返回一个jQuery object不是本机JavaScript数组。)

答案 1 :(得分:0)

jQuery中唯一的正确语法是:

CREATE FUNCTION get_previous_transaction_date (p_client VARCHAR2, p_account_no VARCHAR2, p_trade_date DATE) RETURN DATE
IS
    v_prev_date DATE;
BEGIN
    SELECT MAX(trade_date)
      INTO v_prev_date
      FROM your_table
     WHERE client = p_client
       AND account_no = p_account_no
       AND trade_date < p_trade_date;
    RETURN v_prev_date;
END;
/

SELECT client, account_no, trade_date, amount, get_previous_transaction_date(client, account_no, trade_date)
  FROM your_table;
从jQuery 3.0开始,

$.uniqueSort() is deprecated