Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задача по DOM (https://javascript.ru/forum/misc/24778-zadacha-po-dom.html)

Yan_by 13.01.2012 19:13

Задача по DOM
 
Условие:
- реализовать проход по всем элементам-потомкам элемента, у которого значение
ID равно ‘body’;
- обнаружить все элементы, у которых значение аргумента class равно 'hilite' и вывести их в окне сообщения;
- скрыть все элементы, соответствующие этому условию.

Есть функция, но ничего не работает:

function A()
        {
                var all = document.getElementById("body").getElementsByTagName("*");
                
                for ( var i = 0; i < all.length; i++ ) 
                {
                
                        if ( all[i].className == 'hilite' ) 
                        all[i].style.display = 'none'; 
                }
        }


Скорей всего, я просто не знаю как применить код, прошу помочь!

devote 13.01.2012 19:17

Цитата:

Сообщение от Yan_by
Скорей всего, я просто не знаю как применить код

просто вызвать функцию A();

Yan_by 13.01.2012 19:22

Создал кнопку:
<button onclick="A()">AAAA</button>


Ничего не происходит!

devote 13.01.2012 19:26

if ( /(?:^| +)hilite(?: +|$)/i.test( all[ i ].className ) ) {
    all[ i ].style.display = 'none';
}

Aetae 13.01.2012 19:37

devote,
Цитата:

значение аргумента class равно 'hilite'

devote 13.01.2012 19:38

Цитата:

Сообщение от Aetae (Сообщение 150231)
devote,

та, хуже не будет

Yan_by 13.01.2012 19:43

Вот полный код страницы:

<html>
<head>
<title>confirm</title>

<script language="javascript">
	
function A()
	{
		var all = document.getElementById("body").getElementsByTagName("*");
		for ( var i = 0; i < all.length; i++ ) 
		{
			if ( /(?:^| +)hilite(?: +|$)/i.test( all[ i ].className ) ) 
			{
				all[i].style.display = 'none';
			}
		}
		alert(all);
	}
	</script>
</head>

<body>

<button onclick="A()">AAAA</button>

<div id="body"> Этот элемент body.</div>
  
<div class="hilite"> Этот элемент hilite.</div>
  
<p class="hilite">Для исключения </p>
	
<button onclick="A()">A</button>
	
</body>
</html>


При нажатии на кнопку выводится следующее сообщение.



Но ничего не работает, классы какими были такими и остались. В чем моя ошибка??

devote 13.01.2012 19:52

ошибка твоя в том что в элементе <div id="body"> у тебя кроме текста больше ничего нет... А ты пытаешься в нем искать другие теги.

Yan_by 13.01.2012 20:02

Благодарю, devote!


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