Javascript GetElementBy???

kil

Новичок
Javascript GetElementBy???

Всем привет!
У меня беда вот в чем:
Пишу контекстное меню для правой кнопки мышки.
С открытием меню все ок: кликаешь на ссылку и открывается нужное меню.
Сами пункты меню записываются таким образом:

<div id="imenu0" class="skin" >
.......
</div>
<div id="imenu1" class="skin" >
.......
</div>
<div id="imenu2" class="skin" >
.......
</div>

.......

<div id="imenu10000" class="skin" >
.......
</div>

т.е. пунктов меню неограниченно много.

Беда с их закрытием: меню все пункты должны пропадать при клике по документу левой кнопкой мышки:

<body onclick="hidemenu()">

но функция hidemenu() должна закрывать именно все пункты!
Соответственно getElementByID не подходит:

<script>
function hidemenu(){
var menuobj=document.getElementByID('imenu0');
menuobj.style.visibility="hidden"
}
</script>

Я пробовал вместо getElementByID писать getElementByClassName, но ничего не получается :( Что делать????

Заранее спасибо! :)
 

LOG

Новичок
используй события (addEventListner, attachEvent)

вот тут можешь прочитать про события, тут несколько страниц, советую прочитать все, к омуже есть таблица с описанием где что работает в каком браузере
http://www.quirksmode.org/js/introevents.html
 

phprus

Moderator
Команда форума
Можно выбирать все теги DIV функцией getElementsByTagName(), а после этого перебирая полученный массив выбирать только те элементы к которых свойство ClassName имеет значение "skin" и уже с ними работать.
Только желательно найденные элементы (или их id) сохранить в каком нибуть массиве чтобы при следующем клике не перебирать снова все теги DIV.
 

Бочонок

http://frontender.info
ЭЭЭЭЭ....
Проблемы не понял.

У тебя есть контейнер в котором находятся все пункты меню.
Код:
<div id='main_container'>
       <div id="imenu0"></div>
       <div id="imenu1"></div>
       <div id="imenu2"></div>
</div>
Если нужно спрятать все меню:
Код:
var mc=document.getElementById('main_container');
mc.style.display = 'none';
Если действия выполняются с каждым отдельным пунктом:
Код:
var mc=document.getElementById('main_container');
var kids =mc.childNodes;
for (var i = 0; i < kids.length; i++) {
//Действия с потомками
}

В чем собственно проблема то ?
 

kil

Новичок
Автор оригинала: Бочонок
ЭЭЭЭЭ....
Проблемы не понял.

У тебя есть контейнер в котором находятся все пункты меню.
Код:
<div id='main_container'>
       <div id="imenu0"></div>
       <div id="imenu1"></div>
       <div id="imenu2"></div>
</div>
Если нужно спрятать все меню:
Код:
var mc=document.getElementById('main_container');
mc.style.display = 'none';
Если действия выполняются с каждым отдельным пунктом:
Код:
var mc=document.getElementById('main_container');
var kids =mc.childNodes;
for (var i = 0; i < kids.length; i++) {
//Действия с потомками
}
Спасибо огромное! :)
 
Сверху