Подключение нескольких document.getElementById
Проблема состоит в том, что мне надо чтобы при нажатии на ссылку изменялся параметр стиля сразу у нескольких блоков. Если проще, то есть такой код:
<div onclick="document.getElementById('opro').style.display = 'none'; document.getElementById('ast').style.display = 'none'; document.getElementById('qwe').style.display = 'none'; и т.д. "> мне всего лишь надо объединить эти функции в одну, потому что если добавить еще парочку таких, то почему то перестают действовать последние из них. Решение через for со счетчиком не подходит, нужно именно указывать разные id блоков(их всего будет 5-10 штук). Заранее спасибо за помощь |
div_element.onclick=function(){ document.getElementById('opro').style.display = 'none'; document.getElementById('ast').style.display = 'none'; document.getElementById('qwe').style.display = 'none'; и т.д. } PS http://javascript.ru/tutorial/events |
Avel Mink, ну как пример:
function changeStyle() { for(var i=0;i<2;i++) { document.getElementById("div"+i).style.display = 'none'; } } соответственно имена у дивов с id="div0" и id="div1" |
<script type="text/javascript"> window.onload=(function(){ function $(a){return document.getElementById(a);} $('d1').onclick=(function(){ ID=['d2','d3','d4']; for(k in ID){ $(ID[k]).style.display='none'; } }); }); </script> <div id="d1">click</div> <div id="d2">1</div> <div id="d3">1</div> <div id="d4">1</div> |
chippolino,
это не раздел по какому-либо фреймворку. для них есть отдельный раздел. |
Gvozd, а где ты тут видишь "какой-либо фреймворк"???
|
chippolino, на первый взгляд код похож на jquery, а у Вас просто функция с именем $, которая возвращает ссылку на элемент)
|
Цитата:
... $('d1').onclick .... Спасибо |
Цитата:
вы не стой стороны начали решать задачу fucntion func(elem){ var elems=...//список всех div-ов for(i=0;i<elems.length;i++){ if(elems[i]!=elem) ...//скрываем элемент } } <div onclick="func(this)"></div> |
если можно напишите примеры, что должно быть тут
... var elems=...//список всех div-ов ... и тут ...//скрываем элемент ... потому что я не разбираюсь в javascript. Спасибо |
Цитата:
Цитата:
|
Avel Mink, Gvozd Вам всё подробно расписал, примите и Вы немного усилия.
|
Цитата:
PS^Если для Вас кажеться это пустяком, то для человека, который вообще не знаком с алгоритмом языка это затянеться надолго |
<script type="text/javascript">//<!-- window.onload=(function(){ function $(a){return document.getElementById(a);} ID=['d1','d2','d3','d4']; for(k in ID){$(a=ID[k]).onclick=(function(){for(k in ID){(a=$(ID[k]))!=this?a.style.display='none':'';}});} });//--> </script> <div id="d1">click1</div><div id="d2">click2</div><div id="d3">click3</div><div id="d4">click4</div> |
Спасибо огромное chippolino, ну а всем остальным просто спасибо.
|
Почему данная конструкция не работает ?
<script type="text/javascript"> window.onload=(function(){ function $(a){return document.getElementById(a);} $('d1').onclick=(function(){ ID=['qwe','opro','ast','prof']; for(k in ID){ $(ID[k]).style.display='none'; } }); }); </script> Вернее не работает закрытие по последнему id, в данном случае 'prof', пробова менять их местами - результат один и тот же - работают только первые три id. Четвертый ни в какую не хочет |
покажи весь свой код!
|
Вообще через css классы надо такое делать. =/
|
Цитата:
Вот рабочий пример: <div id="opro" onclick=func(this)>111</div> <div id="ast" onclick=func(this)>222</div> <div id="qwe" onclick=func(this)>333</div> <div id="zxc" onclick=func(this)>444</div> <script type="text/javascript"> function func(elem){ var elems=['opro','ast','qwe','zxc']; //список всех ID div-ов for(i=0;i<elems.length;i++){ if (elems[i] != elem.id) document.getElementById(elems[i]).style.display='none'; //скрываем элемент } } </script> Но Вы до конца не додумали задачу. Закрыть все блоки кроме одного - это понятно. А каких Вы их потом открывать собираетесь? |
Цитата:
и готов тратить ради этого знания свое время, так как знает, что ему это полезно. полностью готовый код тут не принято писать потому что: Цитата:
и к сожалению для вас готовый код не оказался полезным, так как у вас сразу же возникли вопросы. если бы вы изучили упомянутые мною статьи, новые вопросы вы бы спокойно решили. Для тех, же кто не собирается тратить своей время на изучение JS, есть раздел "работа" там вы потратите свои деньги даром, практически ничего не получить. либо надо тратить время, либо деньги Цитата:
зависит от используемой верстки. вариант с набором Id-шников, также хорош в частных случаях. |
Цитата:
|
chippolino, Огромнейшее тебе спасибо за этот кусок!
Цитата:
|
Часовой пояс GMT +3, время: 06:09. |