Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как получить все теги <a> из <ul> ? (https://javascript.ru/forum/dom-window/18164-kak-poluchit-vse-tegi-iz-ul.html)

weeklyTea 20.06.2011 11:28

как получить все теги <a> из <ul> ?
 
такая ситуация: есть список, в списке ссылки у которых в стиле написанно "display: block;", надо с помощью JS поменять ссылкам фоновые картинки, причем без использования id. Подскажите как.

walik 20.06.2011 11:44

Циклом проходишь по ссылкам и проверяешь свойство display. Если то что надо, то меняешь.

weeklyTea 20.06.2011 11:58

я это, забыл такую деталь: в списке есть еще один список с ссылками, и для них фон менять не надо.

была идея ходить по "детям" списка, но насколько я знаю некоторые браузеры в качестве DOM-элемента принимаю пустой текст между тегами. Вообщем alert(document.getElementById('sidebar').firstChil d.tagName); (sidebar - это div в котором лежит список с ссылками) в хроме и експлорере работают по разному.
Может быть можно как-то эту идею осуществить работающей на всех браузерах? :)

ksa 20.06.2011 11:59

Цитата:

Сообщение от weeklyTea
я это, забыл такую деталь

Мог бы и пример тестовый сделать...

weeklyTea 20.06.2011 12:17

вот пример:
<div id="sidebar" align="center">
<ul>
<li><a href = ""> Главная </a><ul>
<li><a href = ""> ЧАВО </a></li>
<li><a href = ""> Сервера </a>
   <ul>
      <li><a href = ""> Сервера для курсов ПК ППС </a></li>
   </ul>
</li>
<li><a href = ""> Документация </a></li>
<li><a href = ""> О проекте </a></li></ul></li>
</ul>
</div>

ksa 20.06.2011 12:46

Цитата:

Сообщение от weeklyTea
вот пример

Теги посмотри как закрываешь... :D

Как вариант...

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<style type="text/css">
</style>
<script type="text/javascript">
function Go() {
	var o=document.getElementById('sidebar')
	o=o.getElementsByTagName('ul')[0]
	o=o.getElementsByTagName('li')[0]
	while (o) {
		alert(o.getElementsByTagName('a')[0].innerHTML)
		do {
			o=o.nextSibling
			if (o.tagName=='LI') break
		} while (o)
	}
}
</script>
</head>
<body onload='Go()'>
<div id="sidebar" align="center">
	<ul>
		<li><a href = ""> Главная </a></li>
		<li><a href = ""> ЧАВО </a></li>
		<li><a href = ""> Сервера </a>
			<ul>
			  <li><a href = ""> Сервера для курсов ПК ППС </a></li>
			</ul>
		</li>
		<li><a href = ""> Документация </a></li>
		<li><a href = ""> О проекте </a></li></ul></li>
	</ul>
</div>
</body>
</html>

weeklyTea 20.06.2011 13:21

спасибо, только что значит " [0] " например тут: " o.getElementsByTagName('li')[0] " ?
А косяка в закрытии тегов я что-то не нашел (

ksa 20.06.2011 13:42

Цитата:

Сообщение от weeklyTea
А косяка в закрытии тегов я что-то не нашел

Ну а это.

<li><a href = ""> Главная </a>*!*<ul>*/!*


Цитата:

Сообщение от weeklyTea
что значит " [0] "

Ну это вовсе прискорбно... :(
http://javascript.ru/Array

trikadin 20.06.2011 13:48

ksa! Почему alert\'ы?!

*задолбался их закрывать*

ksa 20.06.2011 13:59

Цитата:

Сообщение от trikadin
Почему alert\'ы?

Не понял вопроса...
Поставил один алерт в цикле дабы показать визуально - вот он искомый элемент.


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