12.11.2008, 20:58 | #1 |
Специалист
|
Подскажите ЖабаСкрипт
Цель такая:
Сделать одну кнопку (ссылку) после щелчка по которой скрывались/показывались несколько элементов с одним классом(class=""). Важно то что бы скрипт брал не идентификатор, а класс. Идея похожа на скрипт Скрыть/показать, но есть одно "НО", для скрипта Скрыть/показать используется Идентификатор, мне нужен класс, так как повторяющиеся идентификаторы в коде нарушают валидность. Подскажите, кто шарит ЖС, т.к. я в нем не очень силен. Спасибо. ЗЫ: Пример скрипта Скрыть/Показать: http://elementalgames.com/forum/down...e=418&msg=4999
__________________
|
12.11.2008, 22:09 | #2 |
Злой модератор
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 502
|
Если не использовать библиотеки типа jquery, то можно перебором элементов:
Код HTML:
var div = document.getElementsByTagName("div"); for (var i=0; i < div.length; i++) { if (div[i].className == 'hideClass') div[i].style.display = (div[i].style.display == 'none')? '':'none'; } |
13.11.2008, 16:17 | #4 |
Специалист
|
а можно то что пишете сопровождать примерами применения... я не всегда понимаю с первого раза того что не знаю...
__________________
|
13.11.2008, 17:25 | #5 |
JS Developer
|
<button onclick="my_funcs()">Кнопка</button>
<script type="javascript"> <!-- function my_funcs() { var div = document.getElementsByTagName("div"); for (var i=0; i < div.length; i++) { if (div[i].className == 'hideClass') div[i].style.display = (div[i].style.display == 'none')? '':'none'; } } //--> </script> <div> <b class="hideClass">Текст</b> <span class="hideClass">Текст</span> </div> С вас 8 тысяч рублей |
13.11.2008, 19:36 | #6 | |
Специалист
|
Цитата:
__________________
|
|
13.11.2008, 22:56 | #7 |
Мастер
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 236
|
Что-то типа этого
Код:
var classDivs = null; function my_funcs() { if(classDivs === null){ classDivs = []; var div = document.getElementsByTagName("div"); for (var i=0; i < div.length; i++) if (div[i].className == 'hideClass') classDivs.push(div[i]); } for (var i=0; i < classDivs.length; i++) classDivs[i].style.display = (classDivs.style[i].display != 'block') ? 'block' : 'none'; } (classDivs.style[i].display != 'block') ? 'block' : 'none';, если выден, то (classDivs.style[i].display != 'none') ? 'none' : 'block'; |
14.11.2008, 09:38 | #8 |
JS Developer
|
Как я понял, классы будут в контексте страницы, так что вариант block не подходит. Лучше его заменить другим значением.
А зачем вам кеширование? Чем проще, тем надёжнее (ну невсегда конечно) |
15.11.2008, 14:16 | #9 | |
Специалист
|
прошу прошения что сразу не отписал.
Решил вот как: Цитата:
__________________
|
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите CMS | asdfg | Курилка | 16 | 16.08.2008 21:01 |
Подскажите по PR | KOMMYHuC | Google, MSN, Yahoo | 17 | 11.08.2008 17:44 |
Подскажите. | NewLeaX | Вопросы от новичков | 4 | 13.02.2008 16:05 |
подскажите | stremlenie1 | Курилка | 7 | 26.01.2008 22:07 |
Подскажите | masterwe | Установка кода на различные движки | 3 | 04.01.2008 19:16 |
Часовой пояс GMT +3, время: 00:09.