【发布时间】:2014-04-23 08:09:55
【问题描述】:
我在我的网站上设置了一个“简历”部分,我有 3 张员工图片和 3 个 div,下面是每个员工的简历。我想默认隐藏所有的bios,然后只显示与单击的图像相关联的div,并隐藏所有其他div。
目前它似乎没有找到元素,因为我得到“未定义”
到目前为止,这是我的 HTML:
<div onclick="showhide('bill');" class="bio_image"><div class="name">Bill Murray</div></div>
<div onclick="showhide('bill2');" class="bio_image"><div class="name">Bill Murray</div></div>
<div onclick="showhide('bill3');" class="bio_image"><div class="name">Bill Murray</div></div>
<div class="hide" id="bill">BILL</div>
<div class="hide" id="bill2">BILL2</div>
<div class="hide" id="bill3">BILL3</div>
还有我的 Javascript:
function showhide(id){
if (document.getElementById) {
var divid = document.getElementById(id);
var divs = document.getElementsByClassName("hide");
for(var div in divs) {
div.style.display = "none";
}
divid.style.display = "block";
}
return false;
}
JSFiddle
有什么想法吗?谢谢!
【问题讨论】:
-
你永远不需要
if (document.getElementById)。此外,较旧的浏览器不会执行document.getElementsByClassName()。此外,某些版本的 IE 和其他浏览器将无法使用.getElementsByClassName()或.getElementsByName()执行 for in 循环。在那些你想坚持for(var i=0,l=elementArray.length; i<l; i++)的人身上。
标签: javascript onclick hide