JavaScript, цикл все выбирает? - PullRequest
2 голосов
/ 20 мая 2009

Ну, я новичок в javascript, но почему это не работает, все, что я хочу сделать, это получить список всех выборов на странице.

var elements = document.getElementsByTagName("select");
alert("there are " + elements.length + " select's");
for (i = 0; i < elements.length; i++)
{
    alert(elements[i].getAttribute('Id'));
}

Редактировать: ошибка в том, что он вообще не находит выбора, elements.length всегда равно нулю!

Ответы [ 5 ]

3 голосов
/ 20 мая 2009

Вы говорите, что elements.length всегда возвращает 0 для вас, это может быть потому, что:

  • Вы запускаете код JS в начале своей страницы, поэтому DOM еще не полностью доступен
2 голосов
/ 20 мая 2009

Попробуйте использовать .id вместо getAttribute('Id').

1 голос
/ 20 мая 2009

Обычная причина того, что getElementsByTagName возвращает ноль, приводит к тому, что документ с соответствующими элементами запускается до того, как элементы появляются в документе (обычно в разделе, а не внутри функции, которая вызывается onload или onDomReady). *

Переместите элемент непосредственно перед тегом (END of body!) Или используйте обработчик событий, который запускается после обработки всего HTML.

1 голос
/ 20 мая 2009

Я думаю, что часть получения атрибута id не работает для вас. Вероятно, это потому, что вы набрали там «Id» вместо «id».

0 голосов
/ 20 мая 2009

Ну, насколько я вижу, возможно, что у выбранных на вашей странице нет идентификаторов (оповещения в цикле показывают ноль)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...