Перевод на новую строку JS воспринимает как объект DOM
Прошу прощения за возможно нелепый вопрос, собственно с JavaScript работаю не очень часто и вот возникла следующая ситуация:
В функцию получаю id элемента "UL", пытаюсь через firstChild вычислить id первого элемента "LI". В случае если html код выглядит подобно: Код:
<ul> А если убрать перевод строки таким образом: Код:
<ul><li>.... Получается, что для нормальной работы с DOM нужно весь код в одну строку писать? |
правильно понимает, объект TextNode, берите следующий объект за ним проверяйте по свойству nodeType если равен 3 значит это TextNode, если 1 значит тег
|
Большое спасибо!
|
Rig, как вариант так
<html> <head> <meta charset="utf-8"> <style type="text/css"> body { margin:0px; } </style> <script type="text/javascript"> function q() { var x = document.getElementsByTagName('ul')[0]; var j = x.getElementsByTagName('li'); for(var i = 0; i < j.length; i++) { alert(j[i].innerHTML); } } </script> </head> <body onload="q();"> <ul> <li>1</li> <li>2</li> </ul> </body> </html> |
Rig,
Вариант ... document.getElementById(id).children[0] |
document.getElementById(id).firstElementChildПравда, в каком-нибудь IE6 поддерживаться не будет. |
document.getElementById(id).getElementsByTagName(' li')[0] - разве так не подходит???
если нет про проганите через while и children var el = document.getElementById(id).children[0] while(el.tagName != 'LI'){ el = el.nextSibling } |
Часовой пояс GMT +3, время: 19:36. |