Я фактически использовал сценарий, который позволил мне показать div onclick и скрыть других, но теперь мне нужно сделать то же самое с «class» вместо «id».Показать класс div и скрыть предыдущий - чистый javascript
Мой текущий сценарий:
function layout(divName){
var hiddenVal = document.getElementById("tempDivName");
if(hiddenVal.Value != undefined){
var oldDiv = document.getElementById(hiddenVal.Value);
oldDiv.style.display = 'none';
}
var tempDiv = document.getElementById(divName);
tempDiv.style.display = 'block';
hiddenVal.Value = document.getElementById(divName).getAttribute("class");}
Я попытался с помощью getElementsByClassName:
function layoutNEW(divName){
var hiddenVal = document.getElementById("tempDivName");
if(hiddenVal.Value != undefined){
var oldDiv = document.getElementById(hiddenVal.Value);
oldDiv.style.display = 'none';
}
var tempDiv = document.getElementsByClassName(divName);
for (var i=0, len=tempDiv.length; i<len; ++i){
tempDiv[i].style.display = 'block';
}
hiddenVal.Value = document.getElementById(divName).getAttribute("id");}
Любые идеи?
EDIT: рабочий пример моего текущего сценария с «ID»: JSFiddle
EDIT 2: Он отлично работает, но когда ДИВ (класс) клонируют, только один из них показывает div. У вас есть идея об этом? Где JSFiddle демонстрирует ситуацию: JSFiddle
ли вы нажимаете на 'div' или на какой-то другой элемент, чтобы скрыть/показать? Можете ли вы поделиться своим html, а также остальной частью вашего JavaScript? – Loaf
Что такое '.Value'? Почему у него есть капитал V? Почему бы вам просто не найти элемент, который был нажат (event.target), а не скрывать остальные? – epascarello
@epascarello Вы не можете скрыть остальные элементы щелчка, иначе вы не сможете щелкнуть по другому элементу. Вы бы спрятали элемент с щелчком и покажете остальное. – mhodges