Массив классов элемента
Есть несколько массивов, которые хранят в себе классы элементов
В зависимости от выбраного селекта нужно показать(show) элементы(label) c классами из массива Зашел в тупик получил имя массива, но это уже не массив стал :) (пременная затерлась) а просто строка И как можно показать все label.классИЗмассива <select id="vid-product"> <option selected="selected">Выберите</option> <option value="10"class="10">Первый набор</option> <option value="11"class="11">Второй набор</option> <option value="12"class="12">Третий</option> </select> <div class="label-hide"> <label class="lbl-275"><input value="275" type="checkbox" class="value-275"/>первый</label> <label class="lbl-259"><input value="259" type="checkbox" class="value-259"/>второй</label> <label class="lbl-286"><input value="286" type="checkbox" class="value-286"/>третий</label> </div>
$(document).ready(function(){
//создаем массивы категорий (наборов)
var set10 = ["lbl-275", "lbl-259", "lbl-286"];
var set11 = ["lbl-275", "lbl-259"];
var set12 = ["lbl-259"];
$('.label-hide label').hide();//скрываю элементы
$('#vid-product').on('change', function() {
var numberSet = $('#vid-product').val();
var nameSet = ("set") + numberSet;
Здесь лейблу с классом из нужного массива присвоить show
});
alert ( $.isArray ( nameSet ) ); // выведет на экран true
})(jQuery);
http://jsfiddle.net/LcKbf/2/ там отлаживаю код |
<head>
<script>
window.onload = showresult;
function showresult() {
var sel = document.getElementById("vid-product");
var labels = document.querySelectorAll("div.label-hide label");
var rez = {
set10: ["lbl-275", "lbl-259", "lbl-286"],
set11: ["lbl-275", "lbl-259"],
set12: ["lbl-259"]
}
var hidelabels = function () {
var len = labels.length;
while (len--)
labels[len].style.display = "none";
};
sel.onchange = function () {
hidelabels();
if (this.selectedIndex) {
var arr = rez["set" + this.value];
var rezlabel = document.querySelectorAll('.' + arr.join(', .'));
var len = rezlabel.length;
while (len--)
rezlabel[len].style.display = "block";
}
};
hidelabels();
};
</script>
</head>
<body>
<select id="vid-product">
<option selected="selected">Выберите</option>
<option value="10" class="10">Первый набор</option>
<option value="11" class="11">Второй набор</option>
<option value="12" class="12">Третий</option>
</select>
<div class="label-hide">
<label class="lbl-275">
<input value="275" type="checkbox" class="value-275" />первый</label>
<label class="lbl-259">
<input value="259" type="checkbox" class="value-259" />второй</label>
<label class="lbl-286">
<input value="286" type="checkbox" class="value-286" />третий</label>
</div>
</body>
не досмотрел массивы сразу. |
alexmixaylov,
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> - jsFiddle demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script>
$(function () {
var obj = { set10 : ["lbl-275", "lbl-259", "lbl-286"],
set11 : ["lbl-275", "lbl-259"],
set12 : ["lbl-259"]};
$('.label-hide label').hide();
$('#vid-product').on('change', function () {
$('.label-hide label').hide();
var numberSet = $('#vid-product').val();
var nameSet = ("set") + numberSet;
nameSet = '.' + obj[nameSet].join(', .')
$(nameSet, ".label-hide").show();
});
});
</script>
</head>
<body>
<select id="vid-product">
<option selected="selected">Выберите</option>
<option value="10" class="10">Первый набор</option>
<option value="11" class="11">Второй набор</option>
<option value="12" class="12">Третий</option>
</select>
<div class="label-hide">
<label class="lbl-275">
<input value="275" type="checkbox" class="value-275" />первый</label>
<label class="lbl-259">
<input value="259" type="checkbox" class="value-259" />второй</label>
<label class="lbl-286">
<input value="286" type="checkbox" class="value-286" />третий</label>
</div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 01:25. |