2013-03-01 5 views
-1

Я пытаюсь получить все td's из определенной строки.Итерации через элементы таблицы с помощью jQuery

Вот код

<script> 
$(window).scroll(function() { 
var widthArray = new Array(); 
var i=0; 
$('#firstRow >td').each(function(){ 
var tdclass=$('td').attr('class'); 
console.log(tdclass); 
widthArray.push(tdclass); 
    i=i+1; 
}); 
}); 

Но он останавливается на первом td вместо перебора.

ОБНОВЛЕНИЕ: переменная i предназначена для другой функции.

ответ

1

Вы должны использовать $(this) внутри цикла .each().

$('#firstRow > td').each(function(){ 
    var tdclass = $(this).attr('class'); 
    console.log(tdclass); 
    widthArray.push(tdclass); 
    i=i+1; 
}); 
+0

Спасибо ... это спасло день, я отвечу на ответ, когда SO позволит мне сделать это примерно за 10 минут. – lazyprogrammer

1

Каждая итерация вы получаете класс первого <td> элемента в наборе $('td'). Вы можете сменить свою конструкцию на более элегантную:

$(window).scroll(function() { 
    var widthArray = $("#firstRow > td").map(function() { 
      return this.className; 
     }).get(), 
     i = widthArray.length; 

    // ... 
}); 
+0

Спасибо, но ответ @ Бруно сделал это ... Спасибо в любом случае – lazyprogrammer

Смежные вопросы