Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2010, 18:27
Интересующийся
Отправить личное сообщение для Jameson Посмотреть профиль Найти все сообщения от Jameson
 
Регистрация: 18.03.2009
Сообщений: 12

Открытие сразу нескольких див-ов при нажатии на ссылку. Как?
Имеем скрипт, с помощью которого можно "открывать" содержимое блока нажатием на ссылку.

<script language="JavaScript" type="text/javascript">
function show(divid)
{
if(document.getElementById(divid).style.display==" none")
{
document.getElementById(divid).style.display="bloc k";
}
else
{
document.getElementById(divid).style.display="none ";
}
}
</script>

Он замечательно работает и все хорошо, если div с id=x встречается в коде 1 раз.

Но если div-ов с id=x несколько, то открывается только тот, который "попадется" первым.

Уважаемые специалисты, помогите со скриптом, который бы открывал все div-ы с нужным мне id, если такое возможно.

<div>
<div id="sub" style="DISPLAY: none;">
<div class="a1">
1.1
</div>
<div class="a1">
1.2
</div>
</div>

<div id="sub" style="DISPLAY: none">
<div class="a1">
2.1
</div>
<div class="a1">
2.2
</div>
</div>

<div id="sub" style="DISPLAY: none">
3
</div>

</div>

<div>
<a onclick="show('sub');" href="#">Скрытый DIV</a>
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2010, 09:47
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

id - это уникальный идентификатор. Нельзя нескольким элементам присваивать один и тот же id.

можно например присвоить id = 'sub-0',id = 'sub-1',id = 'sub-2', а в функции просто пройтись for:

function show(divid)
{
for(var i=0;i<3;i++){
if(document.getElementById(divid+i).style.display==" none")
{
document.getElementById(divid+i).style.display="bloc k";
}
else
{
document.getElementById(divid+i).style.display="none ";
}
}
}

решение не идеальное, но должно дать пищу для размышлений.
Ответить с цитированием
  #3 (permalink)  
Старый 15.02.2010, 09:07
Интересующийся
Отправить личное сообщение для Jameson Посмотреть профиль Найти все сообщения от Jameson
 
Регистрация: 18.03.2009
Сообщений: 12

<html>
<head>
<script>
function show(divid)
{
for(var i=0;i<5;i++){
if(document.getElementById(divid+i).style.display= ="none")
{
document.getElementById(divid+i).style.display="bl ock";
}
else
{
document.getElementById(divid+i).style.display="no ne";
}
}
}
</script>
</head>

<body>
<div>
<div id="sub-0" style="display:none">111</div>
<div id="sub-1" style="display:none">222</div>
<div id="sub-2" style="display:none">333</div>
<div id="sub-3" style="display:none">444</div>
<div id="sub-4" style="display:none">555</div>
</div>
<div>
<a onclick="show('sub');" href="#">Скрытый DIV</a>
</div>

</body>
</html>

Сделал, но дивы вообще не раскрываются. Возможно ошибка в ЯС-коде?
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2010, 11:02
Интересующийся
Отправить личное сообщение для Jameson Посмотреть профиль Найти все сообщения от Jameson
 
Регистрация: 18.03.2009
Сообщений: 12

<html>
<head>
<script>
function show(divid)
{
for(var i=1;i<100;i++)
{
if(document.getElementById(divid+i).style.display= ="none")
{
document.getElementById(divid+i).style.display="bl ock";
}
else
{
document.getElementById(divid+i).style.display="no ne";
}
}
}
</script>
</head>

<body>
<div>
<div id="1" style="display:none">111</div>
<div id="2" style="display:none">222</div>
<div id="3" style="display:none">333</div>
<div id="4" style="display:none">444</div>
<div id="5" style="display:none">555</div>
</div>
<div>
<a onclick="show('');" href="#">Скрытый DIV</a>
</div>

</body>
</html>

Нашел причину, теперь все работает, но в ИЕ6.0 пишет ошибку
строка 8 символ 1 требуется объект Код 0

Кто-нибудь, помогите, пожалуйста.
Ответить с цитированием
  #5 (permalink)  
Старый 15.02.2010, 22:03
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Так тут прилично ошибок было):
function show(divid)
{
for(var i=1;i<=5;i++) // была ошибка, у Вас 5 дивов, а не 100
{
if(document.getElementById(divid+i).style.display=="none") // была ошибка "= ="
{
document.getElementById(divid+i).style.display="block"; //была ошибка "bl ock"
}
else
{
document.getElementById(divid+i).style.display="none"; //была ошибка "no ne"
}
}
}

<div>
<div id="1" style="display:none">111</div>
<div id="2" style="display:none">222</div>
<div id="3" style="display:none">333</div>
<div id="4" style="display:none">444</div>
<div id="5" style="display:none">555</div>
</div>
<div>
<a onclick="show('');" href="#">Скрытый DIV</a>
</div>

Последний раз редактировалось JsLoveR, 15.02.2010 в 22:08.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие картинки в новом окне при клике на ссылку. J77 Общие вопросы Javascript 2 08.12.2009 08:09
смена div при нажатии на ссылку bars Элементы интерфейса 11 23.10.2009 12:45
Событие при нажатии на ССЫЛКУ Ivanishin Events/DOM/Window 11 16.06.2009 01:43
Как сделать ссылку картинку, которая изменяется при наводе курсора на неё? Кирилл Общие вопросы Javascript 2 10.03.2009 15:14
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 07:55