Присвоить класс родительскому элементу списка
Парни выручайте, я завис на одной задачке:
Есть список <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, время: 06:56. |