У меня есть следующий код, который я использую для создания массива всех tr в области tbody таблицы.
var $table = $('#mytable');
var $rows = $table.find("tbody tr");
Он отлично работает и содержит данные из таблицы. Тем не менее, я хочу перебрать каждую строку и создать массив значения каждой ячейки в этой строке. Я пробовал:
for(x=0;x<$rows.length;x++)
{
var aCells = $rows[x].find("td");
alert(aCells.length);
}
Но на консоли отображается ошибка, указывающая, что объект # не имеет метода 'find'
Может кто-нибудь мне помочь? Я просто хочу циклически перебирать каждую строку в теле по одному и создавать массив значений ячеек внутри этой строки, чтобы я мог получить доступ к определенной ячейке в каждом цикле.
Это возвращает DOM не объект jQuery
$rows[x]
Вы хотите использовать eq()
$rows.eq(x).find("td");
или просто используйте каждый()
$rows.each(function(){
var cells = $(this).find("td");
});
$rows
- это не массив. Это объект jQuery. $rows.eq(x)
используйте $rows.eq(x)
. См. Документацию .eq()
Вы можете использовать .each()
для итерации по rows
и вы можете получить доступ к своим элементам td
, используя ссылку $(this)
.
Пытаться
$rows.each(function(){
var aCells = $(this).find("td");
alert(aCells.length);
});