При выборе select скрываются определенные div
Добрый день. При выборе опции в селекте должны скрываться определенные группы. Работает, но не корректно. Какие то div'ы скрываются, а какие то остаются.
<style> div { display: block; } </style> <div class="container"> <h1 class="page-header">Продажа средств измерений</h1> <select class="form-control" id="CategoryTree"> <option selected="selected" class="all active" value="0">Все дозиметры</option> <option value="1">Дозиметры для банков <span class="badge">2</span></option> <option value="2">Индивидуальная дозиметрия <span class="badge">3</span></option> </select> </div> <div class="row"> <div id="bank"> <h3> <a href="#">Дозиметр для банков 1</a> </h3> <p>Для банка</p> </div> <div id="individ"> <h3> <a href="#">Индивидуальный 1</a> </h3> <p>Индивид</p> </div> </div> <div class="row"> <div id="individ"> <h3> <a href="#">Индивидуальный 2</a> </h3> <p>Индивид</p> </div> <div id="bank"> <h3> <a href="#">Дозиметр для банков 2</a> </h3> <p>Для банка</p> </div> </div> <div class="row"> <div id="individ"> <h3> <a href="#">Индивидуальный 3</a> </h3> <p>Индивид</p> </div> </div> document.getElementById("CategoryTree") .onchange = function() { var b = { 1: "bank", 2: "individ" }, c = this.value, a; for (a in b) document.getElementById(b[a]) .style.display = 0 == c || c == a ? "block" : "none" }; |
Redd,
на всякий случай span в option невозможен и id уникально. |
Цитата:
Немного переписал, но все равно не работает: http://jsfiddle.net/3dye6u3L/ <select id="items"> <option selected="selected" value="0">Все категории</option> <option title="Car" value="1">Автомобили</option> <option title="Motorcycle" value="2">Мотоциклы</option> </select> <div data-category="avto">Автомобиль 1</div> <div data-category="avto">Автомобиль 2</div> <div data-category="avto">Автомобиль 3</div> <div data-category="avto">Автомобиль 4</div> <div data-category="moto">Мотоцикл 1</div> <div data-category="moto">Мотоцикл 2</div> <div data-category="moto">Мотоцикл 3</div> $(function() { function showContent() { var selectCategory = $("#items").val(); switch (selectCategory) { case "0": $('[data-category="avto"]').show(); $('[data-category="moto"]').show(); break; case "1": $('[data-category="avto"]').show(); $('[data-category="moto"]').hide(); break; case "2": $('[data-category="avto"]').hide(); $('[data-category="moto"]').show(); break; } } showContent(); $("#items").change(function() { showContent(); }); }); |
Redd,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ $("#items").change(function() { $(".avto,.moto").not($(this.value).show()).hide() }); }); </script> </head> <body> <select id="items"> <option selected="selected" value=".avto, .moto">Все категории</option> <option value=".avto">Автомобили</option> <option value=".moto">Мотоциклы</option> </select> <div class="avto">Автомобиль 1</div> <div class="avto">Автомобиль 2</div> <div class="avto">Автомобиль 3</div> <div class="avto">Автомобиль 4</div> <div class="moto">Мотоцикл 1</div> <div class="moto">Мотоцикл 2</div> <div class="moto">Мотоцикл 3</div> </body> </html> |
рони,
Спасибо большое, добрый человек! Выручил |
Часовой пояс GMT +3, время: 03:08. |