Создать массив значений ячеек таблицы jQuery

0

У меня есть следующий код, который я использую для создания массива всех 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'

Может кто-нибудь мне помочь? Я просто хочу циклически перебирать каждую строку в теле по одному и создавать массив значений ячеек внутри этой строки, чтобы я мог получить доступ к определенной ячейке в каждом цикле.

Теги:

3 ответа

3
Лучший ответ

Это возвращает DOM не объект jQuery

$rows[x]

Вы хотите использовать eq()

$rows.eq(x).find("td");

или просто используйте каждый()

$rows.each(function(){
    var cells = $(this).find("td");
});
  • 0
    Работал как шарм !! Спасибо! Буду отмечать как правильный ответ, как только это позволит.
2

$rows - это не массив. Это объект jQuery. $rows.eq(x) используйте $rows.eq(x). См. Документацию .eq()

  • 0
    Спасибо lex82, я не знал о методе .eq (), поэтому спасибо за ваш ответ.
2

Вы можете использовать .each() для итерации по rows и вы можете получить доступ к своим элементам td, используя ссылку $(this).

Пытаться

$rows.each(function(){
    var aCells = $(this).find("td");
    alert(aCells.length);
});
  • 0
    Спасибо! Это тоже работает!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню