LINUX.ORG.RU

[javascript]Не работает, как я хочу

 


0

1

function doNewMainOrder(list) {

var byid = document.getElementById(list);

var i = 0;

while (byid.children[i].firstChild.data) {

   i++;

}

alert(i);

}

Окно не появляется, даже если заменить переменную i на просто слово, в кавычках. Подскажите, пожалуйста, что я не так делаю?


Ответ на: комментарий от TERRANZ

да что тут думать, если не появляется то и не вызывается или WAI... OH SHI~~~ БАГ В ФУНКЦИИ ALERT: ОНА НЕ РАБОТАЕТ!

trashymichael ★★★
()

где-то до строки с alert выпадает ошибка. Скорее всего не у всех элементов есть дети (firstChild). Нужно добавить проверку типа:

while (byid.children[i]) {
   if ( byid.children[i].firstChild == undefined ) break;
   if ( byid.children[i].firstChild.data == undefined ) break;
   i++;
}

если я правильно понял смысл твоего кода. Ну и смотри в консоль ошибок своего браузера, или где ты там это запускаешь

anonymous
()
Ответ на: комментарий от anonymous

>Скорее всего не у всех элементов есть дети
нет, всё проще. когда i >= byid.children.length , byid.children == undefined , а у него вызывается firstChild..

надо как-то так

var count = 0;
for (var i = 0; i < byid.children.length; i++) {
    if (byid.children[i].firstChild.data) count++;
}

а про iterable я ступил -.-

OramahMaalhur
()
Ответ на: комментарий от tuxin

Может, расскажешь всё-таки, что ты в итоге хочешь получить?
— количество элементов в списке? тогда byid.children.length и не нужно никаких циклов
— количество элементов в списке, у которых не пустое текстовое значение?
тогда
var count = 0;
for (var i = 0; i < byid.children.length; i++) {
if (byid.children[i].firstChild && byid.children[i].firstChild.data) count++;
}

OramahMaalhur
()
Ответ на: комментарий от OramahMaalhur

Есть список из каких-то данных, которые выводятся в определенном порядке. Пользователь на странице перемещает эти даные (в визуальном режиме, с помощью jqueryui), какие-то вверх по списку, какие-то вниз, как угодно. Нажимает кнопку, чтобы сохранить новый порядок. Запрос обрабатывается и в базе идет апдейт типа, у этого id теперь такой-то порядковый номер.

tuxin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.