Условие для структуры html кода
Нужно в определенный элемент добавить класс, при условие, что на странице будет обнаружена такая ситуация
<ul class="menu"> <li class="active"> <a href=""></a> <ul><li></li></ul> </li> </ul> но не такая <ul class="menu"> <li class="active"> <a href=""></a> </li> </ul> Т.е. если активен (class="active") пункт с вложенным списком, то надо произвести действие, если не активен или активен, но без вложенного списка, то действие не производить. Как такое сделать? |
проверить его наличие
например, ...children[1].tagName == 'UL' или ...getElementsByTagName('ul').length == 0 |
Вот так написал, работает. Но кажется мне что это фигня какая-то :)
if(document.getElementById('active')) {
if(document.getElementById('active').children[1].tagName == 'UL') {
console.log('ok');
} else {
console.log('no ok');
}
console.log('ok ok');
} else {
console.log('no ok no ok');
}
|
<ul class="menu">
<li class="active">
<a href=""></a>
<ul><li></li></ul>
</li>
</ul>
<ul class="menu">
<li class="active">
<a href=""></a>
</li>
</ul>
<script>
window.onload = function () {
var elems = document.getElementsByClassName('active');//сделать кроссбраузерной
var len = elems.length;
for (var i = 0; i < len; i++) {
if(elems[i].children[1].tagName == 'UL') {
elems[i].children[0].innerHTML = 'link' + i;
}
}
}
</script>
|
| Часовой пояс GMT +3, время: 09:11. |