Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблемма с вложенным списком (https://javascript.ru/forum/dom-window/52611-problemma-s-vlozhennym-spiskom.html)

KEFIR4UK 26.12.2014 18:11

Проблемма с вложенным списком
 
Есть вложенный список. Задача поменять иконки в списке на + если в нем есть подпункты и на т "." если там нет подпунктов.Проблема в том что оно делает только кусок списка так как я хочу: напротив Книги,Отечественные стоит +, Детективы и Научная фантастика стоит точка а вот напротив Исторические стоит + , на всех остальных стоит точка. Что сделал не так?
Сам список:
<ul class="expandable">
		<li>
			<a href="#">Книги</a>
			<ul class="expandable">
				<li>
					<a href="#">Отечественные</a>
					<ul class="expandable1">
						<li><a href="#">Детективы</a></li>
						<li><a href="#">Научная фантастика</a></li>
						<li><a href="#">Исторические</a></li>
					</ul>
				</li>
				<li>
					<a href="#">Зарубежные</a>
					<ul class="expandable1">
						<li><a href="#">Детективы</a></li>
						<li><a href="#">Научная фантастика</a></li>
						<li><a href="#">Исторические</a></li>
					</ul>
				</li>
			</ul>
		</li>
 		<li>
			<a href="#">DVD</a>
			<ul class="expandable">
				<li>
					<a href="#">Отечественные</a>
					<ul class="expandable1">
						<li><a href="#">Детективы</a></li>
						<li><a href="#">Научная фантастика</a></li>
						<li><a href="#">Исторические</a></li>
					</ul>
				</li>
				<li>
					<a href="#">Зарубежные</a>
					<ul class="expandable1">
						<li><a href="#">Детективы</a></li>
						<li><a href="#">Научная фантастика</a></li>
						<li><a href="#">Исторические</a></li>
					</ul>
				</li>
			</ul>
		</li>
	</ul>

А фот функция
window.onload=setPlusIcon;
function setPlusIcon(){
	allLI = document.getElementsByTagName("LI");
	for(var i =0;i<allLI.length;i++){
		li =allLI[i];
		var allUL = document.getElementsByTagName("UL");
		if(allUL.length>0){
				if(allUL[i].className == 'expandable')
			li.style.listStyleImage = 'url("../../images/plus.gif")';
				else if (allUL[i].className == 'expandable1')
			li.style.listStyleImage = 'url("../../images/point.gif")';
		}
	}
}

Malleys 26.12.2014 19:10

<script>
window.onload = setPlusIcon;
function setPlusIcon() {
	var listItems = document.getElementsByTagName("li");
	for(var i = 0, item, list; i < listItems.length; i++){
		item = listItems[i];

     list = item.getElementsByTagName('ul');
     if(list && list.length != 0)
       item.style.listStyleImage = 'url("http://wiki.gigaspaces.com/wiki/images/icons/tree_plus.gif")';
     else
			item.style.listStyleImage = 'url("http://girlshostelskota.com/IMAGES/IMG/dot.gif")';
	}
}

</script>
<ul class="expandable">
		<li>
			<a href="#">Книги</a>
			<ul class="expandable">
				<li>
					<a href="#">Отечественные</a>
					<ul class="expandable1">
						<li><a href="#">Детективы</a></li>
						<li><a href="#">Научная фантастика</a></li>
						<li><a href="#">Исторические</a></li>
					</ul>
				</li>
				<li>
					<a href="#">Зарубежные</a>
					<ul class="expandable1">
						<li><a href="#">Детективы</a></li>
						<li><a href="#">Научная фантастика</a></li>
						<li><a href="#">Исторические</a></li>
					</ul>
				</li>
			</ul>
		</li>
 		<li>
			<a href="#">DVD</a>
			<ul class="expandable">
				<li>
					<a href="#">Отечественные</a>
					<ul class="expandable1">
						<li><a href="#">Детективы</a></li>
						<li><a href="#">Научная фантастика</a></li>
						<li><a href="#">Исторические</a></li>
					</ul>
				</li>
				<li>
					<a href="#">Зарубежные</a>
					<ul class="expandable1">
						<li><a href="#">Детективы</a></li>
						<li><a href="#">Научная фантастика</a></li>
						<li><a href="#">Исторические</a></li>
					</ul>
				</li>
			</ul>
		</li>
	</ul>


Цитата:

Сообщение от KEFIR4UK
поменять иконки в списке на + если в нем есть подпункты и на т "." если там нет подпунктов

Это и есть решение

Rise 26.12.2014 19:13

KEFIR4UK, :blink:
<style>
li {
	list-style-image: url(http://javascript.ru/forum/images/ca_serenity/statusicon/user_invisible.gif);
}
li.expandable {
	list-style-image: url(http://javascript.ru/forum/images/reputation/reputation_plus.gif);
}
</style>

<ul>
	<li class="expandable">
		<a href="#">Книги</a>
		<ul>
			<li class="expandable">
				<a href="#">Отечественные</a>
				<ul>
					<li><a href="#">Детективы</a></li>
					<li><a href="#">Научная фантастика</a></li>
					<li><a href="#">Исторические</a></li>
				</ul>
			</li>
			<li class="expandable">
				<a href="#">Зарубежные</a>
				<ul>
					<li><a href="#">Детективы</a></li>
					<li><a href="#">Научная фантастика</a></li>
					<li><a href="#">Исторические</a></li>
				</ul>
			</li>
		</ul>
	</li>
	<li class="expandable">
		<a href="#">DVD</a>
		<ul>
			<li class="expandable">
				<a href="#">Отечественные</a>
				<ul>
					<li><a href="#">Детективы</a></li>
					<li><a href="#">Научная фантастика</a></li>
					<li><a href="#">Исторические</a></li>
				</ul>
			</li>
			<li class="expandable">
				<a href="#">Зарубежные</a>
				<ul>
					<li><a href="#">Детективы</a></li>
					<li><a href="#">Научная фантастика</a></li>
					<li><a href="#">Исторические</a></li>
				</ul>
			</li>
		</ul>
	</li>
</ul>


Часовой пояс GMT +3, время: 07:35.