Проблема в работе с тегами html
Как выбрать только те теги, которые не стоят в другом.
К примеру мне нужно в двухуровневом списке выбрать только заголовки (внешний список). <li>Level 1 list element</li> <ul> <li>list element</li> <li>Level 2 list element</li> <li>list element</li> <li>Level 2 list element</li> <li>Level 2 list element</li> </ul> <li>Level 1 list element</li> <ul> <li>list element</li> <li>Level 2 list element</li> <li>list element</li> <li>Level 2 list element</li> <li>Level 2 list element</li> </ul> <li>Level 1 list element</li> <ul> <li>list element</li> <li>Level 2 list element</li> <li>list element</li> <li>Level 2 list element</li> <li>Level 2 list element</li> </ul> То есть выбрать те LI которые не стоят в UL |
var lis = document.getElementsByTagName("li"); var outLis = []; for (var i = 0; i < lis.length; i++) { if (lis[i].parentNode.parentNode.nodeName.toLowerCase() != "li") outLis.push(lis[i]); } // далее работаем с outLis |
Цитата:
А как селать массив ЗАНЧЕНИЙ того, что стоит между найденными тегами. |
Куда уж универсальнее? :-? Можно, конечно, сделать более функционально, например, написать ф-цию, которой можно передавать id контейнера, содержащего вложенные списки. Типа
function(_cont) { var cont = document.getElementById(_cont) || document; var lis = cont.getElementsByTagName("li"); // ... } Вообще, если хотите большой универсальности, пользуйтесь библиотеками типа jQuery. Цитата:
if (lis[i].parentNode.parentNode.nodeName.toLowerCase() != "li") outLis.push(lis[i].innerHTML); |
Цитата:
И последний вопрос. Мне нужно в HTML документе все двухуровневые списки ПРЕОБРАЗОВАТЬ в таблицу (ну табилцу я знаю как сделать). НО как УДАЛИТЬ список и вместо него поставить таблицу в ЛЮБОМ HTML документе где есть двухуровневый список соответственно. |
|
И судя по вашему примеру он всеравно все выводит.... ПОлынй код в теге body таков.
<body> <form style="width:800px; "> <img src="img/mod.jpg" height="38px" width="129px" onClick="Mod()" onmouseover="this.style.opacity=0.4;" onmouseout="this.style.opacity=1;"> </form> <li>Level 1 list element</li> <ul> <li>list element</li> <li>Level 2 list element</li> <li>list element</li> <li>Level 2 list element</li> <li>Level 2 list element</li> </ul> <li>Level 1 list element</li> <ul> <li>list element</li> <li>Level 2 list element</li> <li>list element</li> <li>Level 2 list element</li> <li>Level 2 list element</li> </ul> <li>Level 1 list element</li> <ul> <li>list element</li> <li>Level 2 list element</li> <li>list element</li> <li>Level 2 list element</li> <li>Level 2 list element</li> </ul> </body> И вот видимо в массив outList он помещает вообще все названия. А не только 3 заголовка. |
Цитата:
|
А где в вашем примере вложенные списки? :D
|
Цитата:
|
Часовой пояс GMT +3, время: 06:35. |