Перевод на новую строку 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, время: 08:52. |