使用Jquery循环遍历tr,并将内容与系列中的下一行进行比较

时间:2009-12-04 17:33:14

标签: javascript jquery dom

我对jQuery / javascript有些新意,并希望将表格中row[i]的内容与row[i+1]进行比较。

这是我可以用jQuery做的事情,还是我应该使用普通的旧JS和getElementByid然后循环?使用.each似乎无法轻易地访问系列中的下一个元素。

我假设如果/当我找到解决方案时,我需要弄清楚如何将row[i].td[j]row[i+1].td[j]进行比较。

我想这很简单,但到目前为止,我的搜索结果都是空的。

3 个答案:

答案 0 :(得分:4)

请注意,next如果您处于最后tr

,则可能最终成为空的jquery对象
var trs = $('tr');
trs.each(function(i,n) {
    var current = $(n);
    var next = trs.eq(i+1);
});

答案 1 :(得分:1)

您可以存储前一个元素并在'next'上进行比较:

        var callback = (function() {
            var lastTr;

            return (function(i, n) {
                if (lastTr) {
                    //logic $(this) is 'next', lastTr is 'current'
                }

                lastTr = $(this);
            });
        })();;

        $(document).ready(function() {
            $('tr').each(callback); 
        });

答案 2 :(得分:0)

到目前为止,我的完整解决方案包含以下内容:

  function myfunc(table) {
    $(table).each(function(i,n) {
      var current = $(n);
      var next = $(table).eq(i+1);
      if (next.length) {
        current.children().each(function(a,b) {
          var current_td = $.trim($(b).text());
          var next_td = $.trim(next.children().eq(a).text());
          /* compare here */
        });
      }
    });
  }