Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.09.2012, 23:31
Интересующийся
Отправить личное сообщение для qazibum Посмотреть профиль Найти все сообщения от qazibum
 
Регистрация: 13.08.2012
Сообщений: 25

Условие для структуры 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") пункт с вложенным списком, то надо произвести действие, если не активен или активен, но без вложенного списка, то действие не производить.
Как такое сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2012, 23:40
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

проверить его наличие
например, ...children[1].tagName == 'UL'
или ...getElementsByTagName('ul').length == 0
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2012, 00:13
Интересующийся
Отправить личное сообщение для qazibum Посмотреть профиль Найти все сообщения от qazibum
 
Регистрация: 13.08.2012
Сообщений: 25

Вот так написал, работает. Но кажется мне что это фигня какая-то
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');
}
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2012, 10:22
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<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>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие типа для flv nemo Серверные языки и технологии 1 29.01.2010 17:52
event'ы для генерируемого кода iEmpire jQuery 2 25.12.2009 02:51
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Передача javascript кода для исполнения. Яго Events/DOM/Window 2 25.08.2009 09:33