2009-12-04 56 views
0

我對jQuery/javascript有點新了,並且希望將表格中的row[i]的內容與row[i+1]的內容進行比較。使用jquery循環遍歷tr,並將內容與下一行的系列內容進行比較

這是我可以用jQuery做什麼,或者我應該只使用普通的老JS和getElementByid,然後循環這種方式?使用.each似乎無法輕鬆訪問系列中的下一個元素。

我假設/當我找到解決方案時,我需要弄清楚如何比較row[i].td[j]row[i+1].td[j]

我想這很簡單,但到目前爲止我的搜索已經出現null。

回答

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 */ 
     }); 
     } 
    }); 
    } 
4

注意next最終可能是一個空的jQuery對象,如果你在最後tr

var trs = $('tr'); 
trs.each(function(i,n) { 
    var current = $(n); 
    var next = trs.eq(i+1); 
}); 
1

你可以存儲上一個元素,並做了「下一個」比較:

 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); 
     }); 
相關問題