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;
то все опшины из селекта будут удалены

Спустя 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.
да без разницы, я обычно использую свойство в цикле. Обращение к свойству, равнозначно обращению к переменной. Кстати любая глобальна переменная в 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 не тольок запитая поставится но и еще прибавится значение.
= ? : Какое то интересное действие опператора, не разжуете почему именно так трактуется данная строка?
А если написать так:
То будет то о чем я пытался сказать выше?
Так если почему после двоеточия будет исполнено только пустая строка и потом уже добалвена значение. Так же и при 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;