вопрос
Есть скрипт который скрывает или показывает блоки в зависимости от выбранного селекта. При большом количестве селектов в списке скрипт получается огромным, возможно ли его как то оптимизировать?
function Selected(a) {
var label = a.value;
if (label==1) {
document.getElementById("xfield_holder_model").style.display='block';
document.getElementById("xfield_holder_model1").style.display='none';
} else if (label==2) {
document.getElementById("xfield_holder_model").style.display='none';
document.getElementById("xfield_holder_model1").style.display='block';
} else if (label==3) {
document.getElementById("xfield_holder_model").style.display='none';
document.getElementById("xfield_holder_model1").style.display='none';
document.getElementById("xfield_holder_model3").style.display='block';
} else if (label==4) {
document.getElementById("xfield_holder_model").style.display='none';
document.getElementById("xfield_holder_model1").style.display='none';
document.getElementById("xfield_holder_model3").style.display='none';
document.getElementById("xfield_holder_model4").style.display='none';
document.getElementById("xfield_holder_model5").style.display='block';
} else {
document.getElementById("xfield_holder_model").style.display='none';
document.getElementById("xfield_holder_model1").style.display='none';
document.getElementById("xfield_holder_model3").style.display='none';
document.getElementById("xfield_holder_model4").style.display='none';
document.getElementById("xfield_holder_model5").style.display='none';
}
}
function selected(v) {Живой пример тык
var list = document.getElementById('list').children,
value = parseInt(v);
for (var i=list.length; i--;) { list[i].style.display='none'; }
if (value === 1) show(['xfield_holder_model']);
else if (value === 2) show(['xfield_holder_model1']);
else if (value === 3) show(['xfield_holder_model3']);
else if (value === 4) show(['xfield_holder_model5']);
}
function show(el) {
el.forEach(function(id) {
document.getElementById(id).style.display='block';
});
}