Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2011, 17:01
Новичок на форуме
Отправить личное сообщение для newcoder Посмотреть профиль Найти все сообщения от newcoder
 
Регистрация: 20.02.2011
Сообщений: 4

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

Буду молиться на того, кто мне поможет)))
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2011, 17:31
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

var nv=document.getElementById('nav');
if(nv.firstChild)nv.parentNode.className+=' hasChild';

...или если под "дочерними элементами" у вас внезапно подразумевались дочерние списки:
if(nv.getElementsByTagName('ul').length)nv.parentNode.className+=' hasChild';
Ответить с цитированием
  #3 (permalink)  
Старый 21.02.2011, 10:27
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

(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"; // И гладишь её ональные губы
	}
})();
Ответить с цитированием
  #4 (permalink)  
Старый 23.02.2011, 05:44
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Aetae,
if(nv.firstChild)
А не может ли случиться что этот элемент будет являться TextNode?

newcoder
$('ul.nav li').each(function(){
	if ($(this).children('ul.sub-nav').length) {
		$(this).children('a').addClass('with-drop');
	}
});
Ответить с цитированием
  #5 (permalink)  
Старый 23.02.2011, 08:22
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

$("#nav li:has(ul.sub-nav) > a").addClass("with-drop");


Ответить с цитированием
  #6 (permalink)  
Старый 28.02.2011, 02:08
Новичок на форуме
Отправить личное сообщение для newcoder Посмотреть профиль Найти все сообщения от newcoder
 
Регистрация: 20.02.2011
Сообщений: 4

Большое человеческое спасибо парни, за решение вопроса!! Эта инфа просто сокровище, мне частенько нужно присваивать классы, но приходится в пхп ковыряться)) а зачем в пхп если можно в жс 2 строки прописать )) Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как программно присвоить id элементу <div> jeel Events/DOM/Window 10 07.06.2014 15:21
Присвоить каждому td в tr свой класс majahead jQuery 4 08.12.2010 12:30
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40
Как присвоить значение элементу формы материнского окна из дочернего? libinstyle Events/DOM/Window 15 28.07.2010 16:56
Как поменять стиль последнему элементу списка UL ARLEVNAR Элементы интерфейса 6 15.07.2010 09:58