jQuery中的每个循环表行

可能重复:
如何使用JQuery迭代表行,并访问一些单元格值?

我有这样的东西:

<table id="tblOne"> <tbody> <tr> <td> <table id="tblTwo"> <tbody> <tr> <td> Items </td> </tr> <tr> <td> Prod </td> </tr> </tbody> </table> </td> </tr> <tr> <td> Item 1 </td> </tr> <tr> <td> Item 2 </td> </tr> </tbody> </table> 

我写了jQuery来循环每个tr像:

 $('#tblOne tr').each(function() {...code...}); 

但问题是,它通过我也不想要的“tblTwo”的“tr”循环。 任何人都可以请build议一些解决这个问题?

在jQuery中使用

 $('#tblOne > tbody > tr').each(function() {...code...}); 

使用直接的孩子select器( > )你会走过直系后代(而不是所有的后代)


VanillaJS中,您可以使用document.querySelectorAll()并使用forEach()遍历行

 [].forEach.call(document.querySelectorAll('#tblOne > tbody > tr'), function(tr) { /* console.log(tr); */ }); 

只是一个build议:

我build议使用DOM表的实现,这是非常直接和易于使用的,你真的不需要这个任务的jQuery。

 var table = document.getElementById('tblOne'); var rowLength = table.rows.length; for(var i=0; i<rowLength; i+=1){ var row = table.rows[i]; //your code goes here, looping over every row. //cells are accessed as easy var cellLength = row.cells.length; for(var y=0; y<cellLength; y+=1){ var cell = row.cells[y]; //do something with every cell here } } 

立即使用儿童select器 >

 $('#tblOne > tbody > tr') 

说明:select由“parent”指定的元素的“child”指定的所有直接子元素