style.display
нужен небольшой фильтр для сайта. нашел принцип реализации, как это можно сделать и немного переделал под свои нужды:
<select> <option>Категория автомобиля</option> <option onClick="f_go(1);">джип</option> <option onClick="f_go(2);">седан</option> <option onClick="f_go(3);">хэтчбек</option> <option onClick="f_go(4);">автобус</option> </select> <DIV id="jeep">джип</DIV> <DIV id="bus">автобус</DIV> <DIV id="sedan">седан</DIV> <DIV id="hatchback">хэтчбек</DIV> JS тоже переписал и он вроде как работает. то есть я выбираю категорию "джип" мне показывает содержимое в контейнере jeep. и т. д. только вот если DIVов с jeep будет несколько: <DIV id="jeep">джип1</DIV> <DIV id="jeep">джип2</DIV> <DIV id="jeep">джип2</DIV> то он показывает только первую, остальные не показываются. как сделать, чтобы показывались все DIVы с jeep? |
Цитата:
внедрить его как ненужно Цитата:
:cray: повесить класс на нужные элементы - при выборе класса обойти все эти элементы и изменить style.display |
Цитата:
|
Цитата:
<DIV class="jeep">джип1</DIV> <DIV class="jeep">джип2</DIV> <DIV class="jeep">джип2</DIV> |
<style> .hide { display: none; } .show { display: block; } </style> <select onchange="show(this);"> <option disabled selected>Категория автомобиля</option> <option value="jeep">джип</option> <option value="sedan">седан</option> <option value="hatchback">хэтчбек</option> <option value="bus">автобус</option> </select> <DIV class="hide jeep">джип</DIV> <DIV class="hide bus">автобус</DIV> <DIV class="hide bus">автобус1</DIV> <DIV class="hide sedan">седан</DIV> <DIV class="hide sedan">седан2</DIV> <DIV class="hide hatchback">хэтчбек</DIV> <script> var actels; function show(el) { var els = document.querySelectorAll('div.' + el.value), len = els.length, clsName, thisel, l; if (actels) for (l = actels.length; l--;) { thisel = actels[l]; clsName = thisel.className.replace(' show', ''); thisel.className = clsName; } actels = els; for (; els[--len].className += ' show', len;); } </script> |
Poznakomlus,
:write: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style> .hide { display: none; } .show { display: block; } </style> </head> <body> <select onchange="show(this);"> <option selected>Категория автомобиля</option> <option value="jeep">джип</option> <option value="sedan">седан</option> <option value="hatchback">хэтчбек</option> <option value="bus">автобус</option> </select> <DIV class="hide jeep">джип</DIV> <DIV class="hide bus">автобус</DIV> <DIV class="hide bus">автобус1</DIV> <DIV class="hide sedan">седан</DIV> <DIV class="hide sedan">седан2</DIV> <DIV class="hide hatchback">хэтчбек</DIV> <script> function show(el) { var els = document.querySelectorAll("div"), l = els.length - 1, clsName, div; for (; div = els[l--];) { clsName = div.className; if (clsName.indexOf(el.value) != -1) clsName = clsName.replace("hide", "show"); else clsName = clsName.replace("show", "hide"); div.className = clsName } }; </script> </body> </html> |
рони,
:dance: <style> .hide { display: none; } .show { display: block; } </style> <select id="brand"> <option disabled selected>Категория автомобиля</option> <option value="jeep">джип</option> <option value="sedan">седан</option> <option value="hatchback">хэтчбек</option> <option value="bus">автобус</option> </select> <div id="result"> <div class="hide jeep">джип</div> <div class="hide bus">автобус</div> <div class="hide bus">автобус1</div> <div class="hide sedan">седан</div> <div class="hide sedan">седан2</div> <div class="hide hatchback">хэтчбек</div> </div> <script> brand.onchange = function () { for ( var els = document.querySelectorAll("#result>div"), l = els.length, clsName, div; l--; ) div = els[l], clsName = div.className, div.className = clsName.indexOf(this.value) != -1 ? clsName + ' show' : clsName.replace(' show', ''); }; </script> поправил синтаксис написания |
Цитата:
|
Poznakomlus,
:victory: <style> .hide { display: none; } .show { display: block; } </style> <select id="brand"> <option disabled selected>Категория автомобиля</option> <option value="jeep">джип</option> <option value="sedan">седан</option> <option value="hatchback">хэтчбек</option> <option value="bus">автобус</option> </select> <div id="result"> <div class="hide jeep">джип</div> <DIV class="hide bus">автобус</DIV> <DIV class="hide bus">автобус1</DIV> <DIV class="hide sedan">седан</DIV> <DIV class="hide sedan">седан2</DIV> <DIV class="hide hatchback">хэтчбек</DIV> </div> <script> brand.onchange = function () { var els = document.querySelectorAll("#result>div"), l = els.length, clsName, div; for (; l--;) div = els[l], clsName = div.className, div.className = clsName.indexOf(this.value) != -1 ? clsName + ' show' : clsName.replace(' show', ''); }; </script> |
Цитата:
:) |
Часовой пояс GMT +3, время: 01:14. |