Select и onchange
Всем здравствуйте.
Подскажите пожалуйста. Я написал скрипт для select, что бы при выборе одного из элементов option выводился нужный контент. Но мой контент разбит на множество блоков далеко друг от друга, и вот у меня такой вопрос, как в скрипет задать два id для одного value. вот то что сделано: <div class="block10"> <h3 class="h3_record">Специализация доктора:</h3> <div class="kabinet_selectid"> <select class="selectid" id="nazn" name="nazn"> <option class="sel_dok" selected="selected" value="1">Отоларинголог (лор)</option> <option class="sel_dok" value="2">Онкодерматолог, детский онколог</option> <option class="sel_dok" value="3">Онкогинеколог, гинеколог</option> </select> </div> <div class="clear"></div> <div style="display:block" id="otoloryngolog"> <p>Отоларинголог</p> </div> <div style="display:none" id="dermatolog"> <p>Онкодерматолог, детский онколог</p> </div> <div style="display:none" id="gynecolog"> <p>Онкогинеколог, гинеколог</p> </div> </div> <div class="block11"> <div style="display:block" id="otoloryngolog"> </div> <div style="display:none" id="dermatolog"> </div> <div style="display:none" id="gynecolog"> </div> </div> <script> document.getElementById("nazn") .onchange = function () { var b = { 1: "otoloryngolog", 2: "dermatolog", 3: "gynecolog" }, c = this.value, a; for (a in b) document.getElementById(b[a]) .style.display = 0 == c || c == a ? "block" : "none" }; </script> И вот там где у меня 1: "otoloryngolog", как добавить еще один id сюда, что то у меня не выходит, а с одним id не работает, меняются только верхние блоки |
Rorbi,
используйте классы |
Rorbi,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <div class="block10"> <h3 class="h3_record">Специализация доктора:</h3> <div class="kabinet_selectclass"> <select class="selectclass" id="nazn" name="nazn"> <option class="sel_dok" selected="selected" value="1">Отоларинголог (лор)</option> <option class="sel_dok" value="2">Онкодерматолог, детский онколог</option> <option class="sel_dok" value="3">Онкогинеколог, гинеколог</option> </select> </div> <div class="clear"></div> <div style="display:block" class="otoloryngolog"> <p>Отоларинголог</p> </div> <div style="display:none" class="dermatolog"> <p>Онкодерматолог, детский онколог</p> </div> <div style="display:none" class="gynecolog"> <p>Онкогинеколог, гинеколог</p> </div> </div> <div class="block11"> <div style="display:block" class="otoloryngolog"> <p>Отоларинголог</p> </div> <div style="display:none" class="dermatolog"> <p>Онкодерматолог, детский онколог</p> </div> <div style="display:none" class="gynecolog"> <p>Онкогинеколог, гинеколог</p> </div> </div> <script> document.getElementById("nazn") .onchange = function () { var b = { 1: ".otoloryngolog", 2: ".dermatolog", 3: ".gynecolog" }, c = this.value, a; for (a in b) {var elems = document.querySelectorAll(b[a]); Array.prototype.forEach.call(elems, function(el, i) { el.style.display = c == a? "block": "none" } ); } }; </script> </body> </html> |
еще один вариант :)
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style> div[data-doctor] { display: none; } div[data-doctor].show { display: block; } </style> </head> <body> <div class="block10"> <h3 class="h3_record">Специализация доктора:</h3> <div class="kabinet_selectclass"> <select class="selectclass" id="nazn" name="nazn"> <option selected="selected" value="1">Отоларинголог (лор)</option> <option value="2">Онкодерматолог, детский онколог</option> <option value="3">Онкогинеколог, гинеколог</option> </select> </div> <div class="clear"></div> <div data-doctor="1" class="show"> <p>Отоларинголог</p> </div> <div data-doctor="2"> <p>Онкодерматолог, детский онколог</p> </div> <div data-doctor="3"> <p>Онкогинеколог, гинеколог</p> </div> </div> <div class="block11"> <div data-doctor="1" class="show"> <p>Отоларинголог</p> </div> <div data-doctor="2"> <p>Онкодерматолог, детский онколог</p> </div> <div data-doctor="3"> <p>Онкогинеколог, гинеколог</p> </div> </div> <script> var elems = document.querySelectorAll("div[data-doctor]"); document.getElementById("nazn").onchange = function () { var val = this.value; for (var el, i = 0; i < elems.length; i++) { el = elems[i]; el.className = el.getAttribute('data-doctor') == val ? "show" : ""; } }; </script> </body> </html> |
Спасибо большое, каждый вариант работает. Огромное спасибо, а еще один вопрос можно, а можно привязатся не к value а к alt например у option?
|
Цитата:
|
Спасибо за информацию
|
Часовой пояс GMT +3, время: 10:32. |