我制作了这个JS扰流板,如果我只有一个下拉框,它可以正常工作,但是如果我试图在页面中添加多个扰流器,而不是单击第二个扰流器链接,它就会打开第一个扰流板。而不是我将第二个链接的id“隐藏”更改为"hidden2“,它按照我的要求工作。问题是链接的图像,我使用作为一个扰流板打开和关闭按钮。(单击该图像时,我希望它更改为其他图像。)所以,当我点击一个按钮打开扰流板时,图像会在第一个扰流按钮和第二个.这里是演示来理解我的意思。点击第二个按钮.
function toggle(element) {
if (document.getElementById(element).style.display == "none") {
document.getElementById(element).style.display = "";
document.getElementById("drop").src="/drop_up.png";
} else {
document.getElementById(element).style.display = "none";
document.getElementById("drop").src="/drop_down.png";
}
}
<a href="javascript:toggle('hidden')"><img id="drop" width="25px" src="/drop_down.png" /></a>
<div id="hidden" style="display:none;">
Box content
</div>发布于 2014-03-17 00:55:47
之所以发生这种情况,是因为:
document.getElementById("drop").src模棱两可。页面上不应该有两个ID相同的元素--如果有多个同名实例,就使用一个类。Javascript只是在搜索,直到找到'drop‘id的第一个实例,然后停止。
https://stackoverflow.com/questions/22445171
复制相似问题