Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   поиск HTMLElement'а в массиве (https://javascript.ru/forum/misc/24608-poisk-htmlelement%27-v-massive.html)

z700i 07.01.2012 16:19

поиск HTMLElement'а в массиве
 
<input type="hidden" id="a1" value="123">
<input type="hidden" id="a2" value="123">
<input type="hidden" id="a3" value="123">
<input type="hidden" id="a4" value="123">
<input type="hidden" id="a5" value="123">

function getById(id){return document.getElementById(id);}
var a=[getById('a1'),getById('a2'),getById('a3'),getById('a4'),getById('a5')];

как проверить есть ли в массиве инпут с айди а3?
:help:

Aetae 07.01.2012 16:21

или indexOf
или циклом по .id

z700i 07.01.2012 16:28

как это выглядеть должно?
a.indexOf(getById('a3'))
выдаёт -1

nerv_ 07.01.2012 16:37

\вариант с циклом
<html>
    <head>
        <meta charset="utf-8">
		<script type="text/javascript">
			function checkEl() {
				with(document) var x = [getElementById("a1"), getElementById("a2"), getElementById("a3"), getElementById("a4"), getElementById("a5")];
				for(var i = 0; i < x.length; i++) {
					if(x[i].id == "a4") { // тут
						alert("true");
						break;
					}
				}
			}
		</script>
    </head>
    <body onload="checkEl()">
		<input type="hidden" id="a1" value="123">
		<input type="hidden" id="a2" value="123">
		<input type="hidden" id="a3" value="123">
		<input type="hidden" id="a4" value="123">
		<input type="hidden" id="a5" value="123">
    </body>
</html>

z700i 07.01.2012 16:43

спасибо но цикл мне не подходит, у меня элементов много очень

devote 07.01.2012 16:47

чет не понял, а так не катит:
if ( getById('a3') ) {
  // элемент есть
} else {
  // элемента нету
}

или
if ( a[ 2 ] ) {
  // элемент есть
} else {
  // элемента нету
}

z700i 07.01.2012 16:49

нет, потому что есть массив с элементами и есть элементы в ХТМЛ коде
над взять из ХТМЛ и проверить есть ли он в массиве

devote 07.01.2012 16:54

ну значит абсолютное равенство === циклом

Livaanderiamarum 07.01.2012 16:55

Цитата:

Сообщение от devote (Сообщение 148610)
ну значит абсолютное равенство === циклом

не подходит ему цикл, элементов у него много ну что вы пристали к человеку)

Aetae 07.01.2012 17:03

Вы наверняка делаете что-то через задний проход.
Но если очень хочется:
<input type="hidden" id="a1" value="123">
<input type="hidden" id="a2" value="123">
<input type="hidden" id="a3" value="123">
<input type="hidden" id="a4" value="123">
<input type="hidden" id="a5" value="123">
<script>function getById(id){return document.getElementById(id);}
var a=[getById('a1'),getById('a2'),getById('a3'),getById('a4'),getById('a5')];
alert(a.indexOf(getById('a3')))
</script>


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