[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обращение к объекту DOM
Xes
document.getElementById('countgorod').innerHTML = selectgorod.getElementsByTagName('option').length;


Интересно, а что если id совпадет с именем переменной то можно не вызывать document.getElementById()

Например selectgorod у меня не где не описана но существует элемнт с таким id и все прекрасно работает. Так если что со стракой что без нее:
		var selectgorod = document.getElementById('selectgorod');

Это так?



Спустя 32 минуты, 38 секунд (19.09.2011 - 19:29) caballero написал(а):
Цитата
Например selectgorod у меня не где не описана но существует элемнт с таким id и все прекрасно работает.


разумеется работает
какое отношение имеет описание переменных к атрибуту id еелемента?

Спустя 8 минут, 12 секунд (19.09.2011 - 19:37) Xes написал(а):
Цитата
разумеется работает
какое отношение имеет описание переменных к атрибуту id еелемента?

Я думал что для того чтобы объектом пользоваться в js, к нему надо обращаться через коллекции либо использовать getElementById для определения по id либо по тегу.

А тут у меня id="selectgorod" и переменная в js selectgorod. И js ghbyzk ее сам как будто я написал строку
Цитата
selectgorod = document.getElementById('selectgorod');

вот это удивило, вроди бы ни где не видел в мануалах для чайников пока читал статейки.

Спустя 1 минута, 59 секунд (19.09.2011 - 19:39) Xes написал(а):
А selectgorod == window.selectgorod ?

Спустя 14 минут, 19 секунд (19.09.2011 - 19:53) caballero написал(а):
Цитата
Я думал что для того чтобы объектом пользоваться в js, к нему надо обращаться через коллекции либо использовать getElementById для определения по id либо по тегу.


getElementById достает элемент (HTML тэг) по его id.

С объектами созданнвм программистом работают через переменные которые программист и создает

Спустя 4 минуты, 57 секунд (19.09.2011 - 19:58) Xes написал(а):
Цитата
getElementById достает элемент (HTML тэг) по его id.


Так вот у меня небыло строки (1) в коде перед строкой (2) но все работло отлично.

(1) var selectgorod = document.getElementById('selectgorod');
(
2) document.getElementById('countgorod').innerHTML = selectgorod.getElementsByTagName('option').length;

Спустя 2 часа, 22 минуты, 58 секунд (19.09.2011 - 22:21) redreem написал(а):
не все браузеры отработают этот момент, вроде IE пошлет подальше или Opera. у меня был такой прецендент. лучше не надеяться и брать элемент как положено - через getElement и при этом не создавать одинаковых переменных и id.

Спустя 12 минут, 36 секунд (19.09.2011 - 22:34) killer8080 написал(а):
кстати вместо
selectgorod.getElementsByTagName('option').length;

можно просто
selectgorod.length;

или
selectgorod.options.length;

а если сделать
selectgorod.length = 0;

то все опшины из селекта будут удалены user posted image

Спустя 37 минут, 41 секунда (19.09.2011 - 23:12) Xes написал(а):
Приму к сведению. Подправлю.

Спустя 19 часов, 10 минут, 18 секунд (20.09.2011 - 18:22) Xes написал(а):
Подскажите такой момент для селекта скажем с количеством элементов в 50, и при дальнейшем переборе в цикле этого массива целесообразно ли сначала подсчитать длину массива(селекта) занести ее в переменную а потом уже использовать в цикле или же можно свойство селекта использовать пряма в цикле.
Как целесообразнне с точки зрения скорости обработки данного кода?
Насколько следует обращать внимание на такие моменты?
	for(var i=0; i<selectgorod.length; i++){
if(i==0){
linksgoroden.innerHTML = selectgorod.options[0].value;
}else{
linksgoroden.innerHTML += ',' + selectgorod.options[i].value;
}
}

Спустя 1 час, 57 минут, 22 секунды (20.09.2011 - 20:19) killer8080 написал(а):
Xes
да без разницы, я обычно использую свойство в цикле. Обращение к свойству, равнозначно обращению к переменной. Кстати любая глобальна переменная в JS, это то же свойство, объекта window.

Спустя 4 минуты, 13 секунд (20.09.2011 - 20:24) killer8080 написал(а):
Кстати это код можно немного сократить
linksgoroden.innerHTML = '';
for(var i=0; i<selectgorod.length; i++)
linksgoroden.innerHTML += i > 0 ? ',' : '' + selectgorod.options[i].value;


Спустя 24 минуты, 38 секунд (20.09.2011 - 20:48) Xes написал(а):
Почему будет поставленна запитая либо ничего? А не запитая либо ничего плюс значение options[i] ?
Так если почему после двоеточия будет исполнено только пустая строка и потом уже добалвена значение. Так же и при i>0 не тольок запитая поставится но и еще прибавится значение.

= ? : Какое то интересное действие опператора, не разжуете почему именно так трактуется данная строка?

А если написать так:
linksgoroden.innerHTML += i > 0 ? ',' : ('здесь та же пустая строка но для наглядности я написал кое че' + selectgorod.options[i].value);

То будет то о чем я пытался сказать выше?

Спустя 39 минут, 19 секунд (20.09.2011 - 21:27) killer8080 написал(а):
Цитата (Xes @ 20.09.2011 - 20:48)
А если написать так:
linksgoroden.innerHTML += i > 0 ? ',' : ('здесь та же пустая строка но для наглядности я написал кое че' + selectgorod.options[i].value);

То будет то о чем я пытался сказать выше?

тебе ведь нужно было запихнуть в linksgoroden все занчения через запятую? А так у тебя там будет только первое значение и куча запятых.

Спустя 12 минут, 25 секунд (20.09.2011 - 21:40) Xes написал(а):
ДА то что вы превели все верно я просто ни пому. Возможно и в Php тоже самое но я просто ни сталкивался с такой комбинацией опператоров.
У меня всегда было или одно значение или второе.

В описалове покарйне мере для пхп сказано что присвоется первое значение если выплнено выражение до ? (это значение между ? и : ), а если не выполниться то все что после : до ; Ни помню где ну гдето читал а тут получается что действие опператора = ? : после : распространяется на пустую строку а не на весь код до точки с запятой.
Вот как бы это меня смущает, а во всех примерах нет такой камбинации там простая комбинаци или или без всяких последющих представлений. И не описано как эта строка будет трактоваться и почему не все что после : следуте исполнять в случае фальш выражения до знака вопроса.

Спустя 12 минут, 44 секунды (20.09.2011 - 21:53) killer8080 написал(а):
а пардон, тут нужны скобки
linksgoroden.innerHTML = '';
for(var i=0; i<selectgorod.length; i++)
linksgoroden.innerHTML += (i > 0 ? ',' : '') + selectgorod.options[i].value;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.