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...});
Но проблема в том, что она проходит через "tr" из "tblTwo", который я не хочу.
Может кто-нибудь предложить что-то решить?
Ответы
Ответ 1
в jQuery просто используйте
$('#tblOne > tbody > tr').each(function() {...code...});
используя селектор прямых детей (>
), вы будете перемещаться по непосредственным потомкам (и не всем потомкам)
в VanillaJS вы можете использовать document.querySelectorAll()
и ходить по строкам с помощью forEach()
[].forEach.call(document.querySelectorAll('#tblOne > tbody > tr'), function(tr) {
/* console.log(tr); */
});
Ответ 2
Только рекомендация:
Я бы рекомендовал использовать реализацию таблицы 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
}
}
Ответ 3
Используйте непосредственный селектор детей >
:
$('#tblOne > tbody > tr')
Описание: выбирает все прямые дочерние элементы, заданные "child" из элементы, указанные "parent".