Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.08.2017, 11:08
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

Сообщение от atanov
как этот объект проверить на true/false
Это есть в моем примере. Только проверка не на true/false, а на наличие элемента/объекта...

Сообщение от atanov
В php например, при переборке массива, который получен путём запроса sql, так сделать можно: while ($row['...']){...}
Так и в JS так.
Только ты так не стал делать.
Ответить с цитированием
  #12 (permalink)  
Старый 23.08.2017, 11:10
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

Сообщение от laimas
в РНР так сделать нельзя
Сообщение от Nexus
бесконечный цикл получите
Я в ПХП не силен, т.ч. не обессудьте.
Ответить с цитированием
  #13 (permalink)  
Старый 23.08.2017, 11:26
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Сообщение от ksa
ksa
Спасибо!
Ответить с цитированием
  #14 (permalink)  
Старый 23.08.2017, 11:28
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Сообщение от laimas
laimas
Да-да, конечно так, сорри неправильно впечатал. ksa уже объяснил на примере, как должно быть.
Ответить с цитированием
  #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() ; ) {

}
Ответить с цитированием
  #16 (permalink)  
Старый 23.08.2017, 11:58
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Сообщение от laimas
для цикла булево значение ее всегда будет true, отсюда и бесконечный цикл.
Вот это как раз и ответ на мой вопрос. Теперь понятно, почему цикл бесконечным является. Ещё раз спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт работает не как надо. sendik Элементы интерфейса 0 08.05.2017 13:36
Owl carousel 2 не работает с табами - как поправить? ligisayan jQuery 7 08.05.2016 13:41
Как перерисовать все элементы SVG на Canvas (d3.js+leaflet.js+html2canvas) Trippal Общие вопросы Javascript 0 10.02.2016 18:25
Callback работает не так как я от него жду singaporian Общие вопросы Javascript 3 14.08.2013 00:42
Как сделать все содержимое страницы не активным son313 jQuery 9 10.07.2013 16:58