我有许多 div 仅在单击链接后才可见。如何关闭所有打开的 div 以便只有点击的那个可见?
我正在使用这个 .js:
function showhide(id){
if (document.getElementById) {
var divid = document.getElementById(id);
divid.style.display = (divid.style.display=='block'?'none':'block');
} }
<a href="javascript:void(null)" onclick="showhide('features');">features</a>
<a href="javascript:void(null)" onclick="showhide('design');">design</a>
<a href="javascript:void(null)" onclick="showhide('create');">create</a>
Run Code Online (Sandbox Code Playgroud)
谢谢乌利
一种方法是添加一个类并基于该类查找元素以隐藏它们(如其他答案中所示)
另一种方法是将元素的状态存储在一个对象中,并使用它来识别需要关闭的打开的元素。
var divState = {}; // we store the status in this object
function showhide(id) {
if (document.getElementById) {
var divid = document.getElementById(id);
divState[id] = (divState[id]) ? false : true; // initialize / invert status (true is visible and false is closed)
//close others
for (var div in divState){
if (divState[div] && div != id){ // ignore closed ones and the current
document.getElementById(div).style.display = 'none'; // hide
divState[div] = false; // reset status
}
}
divid.style.display = (divid.style.display == 'block' ? 'none' : 'block');
}
}
Run Code Online (Sandbox Code Playgroud)
演示在http://jsfiddle.net/gaby/LfzYc/