Показать сообщение отдельно
  #15 (permalink)  
Старый 23.08.2017, 11:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от atanov
ksa уже объяснил на примере, как должно быть
Должно быть обращение к методам и свойствам объекта TABLE, коли они существуют, то изголяться getElementsByTagName('tr') какой смысл?

ksa вам просто подсказал, а надо было самому глянуть в консоль, и посмотреть, что aaaa, это коллекция, и для цикла булево значение ее всегда будет true, отсюда и бесконечный цикл.

Если судить по аналогии с получением строк ресурса, то типа такого, хотя здесь возвращает false не за счет сдвига указателя в массиве, он всегда будет в конце его, а за счет того, что массив в конечном итоге будет пуст (вернется undefined):

<html>
<body>
<table>
    <tr><td></td></tr>
    <tr><td></td></tr>
    <tr><td></td></tr>
</table>
<script>
var a, b = [].slice.call(document.querySelector('table').rows);
while(a = b.pop()) {
    a.cells[0].innerHTML = 111;
}
</script>
</body>
</html>


Цикл while самый простой, но и медленный, в данном случае его можно заманить на более быстрый:

for( ; a = b.pop() ; ) {

}
Ответить с цитированием