JavaScript: посоветуйте куда копать

numer482
На сайте с 06.07.2011
Offline
44
309

Всем привет.

JS запускается в HTML документе подобной формы:

<div id="1">Компьютер</div>
<div id="2">Монитор</div>
<div id="3">Мышка</div>
<div id="4">Монитор</div>
<div id="5">Процессор</div>
<div id="6">Жесткий диск</div>

Скрипт получат слово Монитор и должен вернуть id дивов, где эти слова встречаются.[Т.е. 2 и 4 ]

Через какую функцию это можно реализовать?

zhitov
На сайте с 30.01.2005
Offline
219
#1

Примерно как-то так

for (i=0; i<document.getElementsByName("div").length; i++)

{

if (document.getElementsByName("div").innerHTML=="Монитор")
{ alert(document.getElementsByName("div").id) }
}

т.е. обходим элементы div и сравниваем содержимое...
(в синтаксисе не уверен)

Строительные калькуляторы ( https://www.zhitov.com/ )
doctorpc
На сайте с 12.07.2009
Offline
112
#2

Если можно модифицировать html, то лучше присвоить всем этим дивам какой-то класс и делать уже цикл по нему, чтобы не перебирать все дивы на страницы.

на jquery это будет примерно так:


$(".className").each(function(){
if ($(this).html() == "Монитор") {
alert($(this).attr('id'));
}
});
C
На сайте с 04.02.2005
Offline
291
#3

коллекция = getElementsByTag('*')

foreach коллекция as элемент {

if ( поиск('слово') ==true) сохраним элемент

}

Осталось только реализовать

zhitov
На сайте с 30.01.2005
Offline
219
#4
Chukcha:
getElementsByTag

Именно, а не мои getElementsByName - ошипся...

Только в getElementsByTag('*') не *, а div, зачем все элементы перебирать.

numer482
На сайте с 06.07.2011
Offline
44
#5

Всем спасибо, будем пробовать)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий