Присвоить класс родительскому элементу списка
Парни выручайте, я завис на одной задачке:
Есть список
<ul id="nav">
<li><a href="#">Ссылка</a></li>
<li><a href="#">Ссылка</a></li>
<li><a href="#">Ссылка родитель</a>
<ul class="sub-nav">
<li><a href="#">дочерняя ссылка</a></li>
<li><a href="#">дочерняя ссылка</a></li>
</ul>
</li>
</ul>
Нужно проверить, если у списка есть дочерние элементы, то присвоить на ссылку родитель класс Т.е в итоге хочется получить такое:
<ul id="nav">
<li><a href="#">Ссылка</a></li>
<li><a href="#">Ссылка</a></li>
<li><a class="with-drop" href="#">Ссылка родитель</a>
<ul class="sub-nav">
<li><a href="#">дочерняя ссылка</a></li>
<li><a href="#">дочерняя ссылка</a></li>
</ul>
</li>
</ul>
Буду молиться на того, кто мне поможет))) |
var nv=document.getElementById('nav');
if(nv.firstChild)nv.parentNode.className+=' hasChild';
...или если под "дочерними элементами" у вас внезапно подразумевались дочерние списки:
if(nv.getElementsByTagName('ul').length)nv.parentNode.className+=' hasChild';
|
(function () {
var elems = document.getElementById("nav").getElementsByTagName("LI");
for (var i = 0; i < elems.length; i++) {
if (elems[i].getElementsByTagName("UL").length !== 0) // И теребишь ей клитор
elems[i].getElementsByTagName("A")[0].className = "with-drop"; // И гладишь её ональные губы
}
})();
|
Aetae,
if(nv.firstChild)А не может ли случиться что этот элемент будет являться TextNode? newcoder
$('ul.nav li').each(function(){
if ($(this).children('ul.sub-nav').length) {
$(this).children('a').addClass('with-drop');
}
});
|
$("#nav li:has(ul.sub-nav) > a").addClass("with-drop");
:) |
Большое человеческое спасибо парни, за решение вопроса!! Эта инфа просто сокровище, мне частенько нужно присваивать классы, но приходится в пхп ковыряться)) а зачем в пхп если можно в жс 2 строки прописать :))) Спасибо!
|
| Часовой пояс GMT +3, время: 08:57. |