Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не выполняется if в переборе элементов / 10 сообщений из 10, страница 1 из 1
07.08.2013, 18:16
    #38358706
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
Добрый вечер!

Передо мной стоит задача поиска элемента по его id/name/tag. Реализую через проверку возвращаемого значения. но почему - то код выполняется только до второго else. Не поможете разобраться, в js я не особо.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<script>
var x = function(el_name)
{
	if(document.getElementById(el_name))
	{
		alert('else 1');
	}
	else
	{
		alert('else 2');
		if(document.getElementByName(el_name))
		{
		alert(3);
		}
		else
		{	alert('else 3');
			if(document.getElementByTag(el_name))
			{
			alert(3);
			}
			else
			{
		    alert(0);
			}
		}
	}
}
x(3);
</script>



И может можно как-то оптимизировать алгоритм такого поиска? Спасибо.
...
Рейтинг: 0 / 0
07.08.2013, 18:31
    #38358723
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
Foxter, ты вызываешь несуществующие функции getElementByName и getElementByTag. Замени на getElementsByName и getElementsByTagName.

FoxterИ может можно как-то оптимизировать алгоритм такого поиска
Прежде чем оптимизировать неплохо бы разобраться нужна ли вообще такая функция. Где и как ты её планируешь применять?
...
Рейтинг: 0 / 0
07.08.2013, 18:41
    #38358735
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
bazileFoxter, ты вызываешь несуществующие функции getElementByName и getElementByTag. Замени на getElementsByName и getElementsByTagName.

FoxterИ может можно как-то оптимизировать алгоритм такого поиска
Прежде чем оптимизировать неплохо бы разобраться нужна ли вообще такая функция. Где и как ты её планируешь применять?

Эх, не успел ответить... пока проверял, уже ответили... Ладно, вот вариант оптимизации (если конечно под описание подпадает только один элемент на странице):
Код: javascript
1.
2.
3.
id = "body";
el = document.getElementById(id) || document.getElementsByName(id)[0] || document.getElementsByTagName(id)[0];
alert(el);



А если в зависимости от того, по какому из атрибутов был найден элемент, надо выполнить разные действия, то тогда наверное никак не оптимизировать, только через if...else. Не, ну можно конечно switch(true){case ...} использовать (красивее будет), но это уже просто красивое извращение :).

Более подробно, после описания самой задачи.
...
Рейтинг: 0 / 0
07.08.2013, 18:42
    #38358737
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
bazileFoxter, ты вызываешь несуществующие функции getElementByName и getElementByTag. Замени на getElementsByName и getElementsByTagName.

FoxterИ может можно как-то оптимизировать алгоритм такого поиска
Прежде чем оптимизировать неплохо бы разобраться нужна ли вообще такая функция. Где и как ты её планируешь применять?

Нужен аналог типа $x() в JQuery
...
Рейтинг: 0 / 0
07.08.2013, 18:43
    #38358739
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
[quot Програмёр]bazile
Более подробно, после описания самой задачи.

Спасибо
...
Рейтинг: 0 / 0
07.08.2013, 19:08
    #38358769
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
FoxterbazileFoxter, ты вызываешь несуществующие функции getElementByName и getElementByTag. Замени на getElementsByName и getElementsByTagName.

пропущено...

Прежде чем оптимизировать неплохо бы разобраться нужна ли вообще такая функция. Где и как ты её планируешь применять?

Нужен аналог типа $x() в JQuery

ой... а я такой функции не знаю... Если нужен аналог JQuery, может лучше тогда её и использовать? Уже давно было доказано на личном опыте, что попытка воссоздать частично функционал какого-то фрэймворка своими силами, обычно ни к чему хорошему не приводит, так как в итоге код фрэймворка оказывается более оптимизированным, когда над ним работает не один или 2 человека, а требуемый функционал всё расширяется и расширяется, пока в итоге не становится выгоднее перейти на общеизвестный фреймворк и использовать именно его :).
...
Рейтинг: 0 / 0
08.08.2013, 03:58
    #38359049
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
Есть родной document.querySelectorAll("css selector")
И ещё есть Sizzle
...
Рейтинг: 0 / 0
08.08.2013, 07:08
    #38359062
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
ой... а я такой функции не знаю...
Это такая секретная функция, что о ней не знает даже официальная документация.
...
Рейтинг: 0 / 0
08.08.2013, 11:49
    #38359395
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
...
Рейтинг: 0 / 0
08.08.2013, 22:44
    #38360274
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выполняется if в переборе элементов
Gustly http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35127/javascript_api.htm#autoId33
Автор темы не в курсе, что это не функция jQuery и не встроенная функция JS.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не выполняется if в переборе элементов / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]