Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрытие всех элементов (https://javascript.ru/forum/dom-window/3280-skrytie-vsekh-ehlementov.html)

Gvozd 05.04.2009 01:44

вам нужно такое, я так понимаю
pre_elem=document.getElementsByTagName('*');//замените * на конкретные теги, если они одинаковы.если нет, то остваьте как есть
j=0;
for(i=0;i<pre_elem.length;i++){
if(pre_elem[i].id[0]=='_'){
elem[j++]=pre_elem[i];
}
}
elem;//все элементы, чей ID начинается с '_'

x-yuri 05.04.2009 03:47

Цитата:

Вопрос вот какой: как сделать, чтобы при onclick на странице развернуть/свернуть все ID, начинающиеся с нижнего прочерка?
чем не устраивает http://javascript.ru/forum/dom-windo...html#post15821

PAULUS 05.04.2009 23:03

Большое спасибо, Gvozd.

To x-yuri:

Не пробовал конечно, бесспорно удобно, тем более у меня в каждом раскр блоке помимо разных ID еще одинкаовый class стоИт. Просто есть небольшое опасение в корректности мультибраузерной работы, и в частности, чтобы class всегда переплевывал ID(когда некоторые ID уже развернуты). Но наверное этот вариант тоже должен подойти, на досуге попробую. Спасибо.

Kolyaj 06.04.2009 12:07

Цитата:

Сообщение от PAULUS
Просто есть небольшое опасение в корректности мультибраузерной работы

И откуда такие опасения?

Цитата:

Сообщение от PAULUS
и в частности, чтобы class всегда переплевывал ID(когда некоторые ID уже развернуты)

class никогда не переплевывает id, просто грамотно стили писать надо.

PAULUS 08.04.2009 15:32

Рапортую:
Способ
document.body.className = 'hideblock';
в моем случае не подошел из-за сложности громоздкости наслоения вариантов сочетаний значений body class и локальных ID div-элементов (появилась необходимость при изменении body class одновременно менять значение ID div-элементов, в ином случае требовались повторные нажатия при открыть/скрыть конкретный div, т.е. в любом случае потребовался способ, предложенный Gvozd).
Предложенный Gvozd способ в первоначальном виде работал в Opera и Firefox, но не работал в IE, поэтому потребовалось
if(pre_elem[k].id[0]=='_')
заменить на if(pre_elem[k].id.charAt(0) =='_')
Сейчас работающий код выглядит так:

var SHOF_key='none';
function SHOF(){
pre_elem=document.getElementsByTagName('div');
if (SHOF_key != 'block') SHOF_key = 'block';
else SHOF_key = 'none';
for(k=0;k<pre_elem.length;k++){
if(pre_elem[k].id.charAt(0) =='_'){
document.getElementById(pre_elem[k].id).style.display = SHOF_key;
                                          }}}


Большое спасибо Gvozd и всем участвующим.


Часовой пояс GMT +3, время: 03:47.