Скрытие блоков
есть код:
<html> <head> <script type="text/javascript"> <!-- function open_reshenie(reshenie) { var obj=document.getElementById(reshenie); if(obj.style.display=='none') obj.style.display='block'; else obj.style.display='none'; } --> </script> </head> <body> <p><a href='javascript: open_reshenie(1)'>Открыть решение задачи 1</a> <div ID=1 Style='text-indent:0pt;display:none'><p>решение 1</div> <p><a href='javascript: open_reshenie(2)'>Открыть решение задачи 2</a> <div ID=2 Style='text-indent:0pt;display:none'><p>решение 2</div> <p><a href='javascript: open_reshenie(3)'>Открыть решение задачи 3</a> <div ID=3 Style='text-indent:0pt;display:none'><p>решение 3</div> </body> </html> нужно сделать так чтобы при клике по ссылке закрывался предыдущий блок и открывался блок именно той задачи которую мы хотим. Помогите плиз. :( |
во первых закрой все теги <p>
|
я знаю что рабочий. просто нужно как то доработать чтобы при открытие другого решения предыдущее закрывалось.
|
<html> <head> <script type="text/javascript"> function open_reshenie(reshenie) { var reg = /^d\d{1,}$/; var divs = document.getElementsByTagName('div'); for(var i = 0; i<divs.length; i++) if(divs[i].id.search(reg) + 1 && divs[i].id!=reshenie) divs[i].style.display='none'; var obj=document.getElementById(reshenie); obj.style.display=='none' ? obj.style.display='block' : obj.style.display='none'; } </script> </head> <body> <div><a href='javascript: open_reshenie("d1")'>Открыть решение задачи 1</a></div> <div id="d1" style='text-indent:0pt;display:none'>решение 1</div> <div><a href='javascript: open_reshenie("d2")'>Открыть решение задачи 2</a></div> <div id="d2" style='text-indent:0pt;display:none'>решение 2</div> <div><a href='javascript: open_reshenie("d3")'>Открыть решение задачи 3</a></div> <div id="d3" style='text-indent:0pt;display:none'>решение 3</div> </body> </html> |
спасибо огромное :thanks: ... слушай еще вопрос: што это такое? reg = /^d\d{1,}$/;
|
регулярное выражение.
В данном случаи суть этого выражения d+цифры(длиной от 1 до дохрена). |
ну все ясно премного благодарен
|
Skipp,
А что такое "+1" здесь-> divs[i].id.search(reg) + 1, ищём id в названии, которого на цифру 1 больше? |
как я понял скрывать нужно каждый следующий тег <div> и если id не является равным id ссылки
|
Вы же не будете связывать таким образом, по id, 10 000 блоков? (Да и, кстати, параметр id не должен начинаться с цифры :) )
Нужно другое решение.
Это сильно упростит Вашу задачу. :) Для примера, можете открыть в опере opera:config и поковыряться в ней дебаггером. |
Часовой пояс GMT +3, время: 07:46. |