each затирает переменную, выводит только последнее значение

212
29 июля 2017, 07:23
 $('table.carttable tbody tr').each(function(){
   td_count = $(this).find('td.carttable-id').attr("valko") + ',';
 });
 console.log(td_count);

Выводит только последнее значение, хотя их намного больше. Внутри конструкции поочередно данные выводит. Подскажите, пожалуйста, в чем прицина?

Answer 1

Потому что вы так написали. Переменная td_count хранит только одно значение. Вангую, что вы хотели что то такое, но пропустили +:

 $('table.carttable tbody tr').each(function(){
   td_count += $(this).find('td.carttable-id').attr("valko") + ',';
 });
 console.log(td_count);

Удобнее сделать это так -

let td_count = ''; 
Array.from(document.querySelectorAll('table.carttable tbody tr')) 
  .forEach(el => { 
    td_count += el.querySelector('td.carttable-id').getAttribute("valko") + ','; 
}); 
 
console.log(td_count); 
 
// Или 
 
const td_count_array = Array.from(document.querySelectorAll('table.carttable tbody tr')) 
  .map(el =>    
  el.querySelector('td.carttable-id').getAttribute("valko") 
); 
 
console.log(td_count_array.join(','));
<table class='carttable'> 
<tr> 
<td class = 'carttable-id' valko='1'></td> 
</tr> 
<tr> 
<td class = 'carttable-id' valko='2'></td> 
</tr> 
<tr> 
<td class = 'carttable-id' valko='3'></td> 
</tr> 
</table>

READ ALSO
Как узнать css свойства по значению

Как узнать css свойства по значению

У меня есть значение css, мне с помощью javascript нужно узнать какие свойства использует используют это значениеНапример 100px

237
Выполнение div с использованием задержки

Выполнение div с использованием задержки

Добрый День! Как можно задать задержку для элемента div? В моем случае это 3 элемента, и суть проблемы заключается в том, что нужно срабатывание...

226
Послать сигнал другому клиенту ajax [дубликат]

Послать сигнал другому клиенту ajax [дубликат]

На данный вопрос уже ответили:

202
Как изменить картинку на сайте при определенном разрешении?

Как изменить картинку на сайте при определенном разрешении?

Необходимо, чтобы при мобильном разрешении была одна картинка, а при десктопном разрешении - другаяКак это можно осуществить?

240