我在执行我想要的代码时遇到了一些麻烦。我有多个部分,我已经设置切换显示/隐藏,并且它的功能正确。但是,我现在试图将图像切换到“更多”,而不是始终静止的位置,我希望它在展开时切换到“较少”。Javascript函数changeImage:使用getElementById或getElementsByName变量的问题
它确实有效......但只适用于第一个。如果我按任何其他按钮,它只会改变第一个按钮。你可以在这里看到的页面:
我试着变量几个不同的解决方案,但我似乎无法得到它的工作。
帮助?提前致谢!
function changeImage() {
if (document.getElementById("moreorless").src == "http://jfaq.us/more.png")
{
document.getElementById("moreorless").src = "http://jfaq.us/less.png";
}
else
{
document.getElementById("moreorless").src = "http://jfaq.us/more.png";
}
}
function toggleMe(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none")
{
e.style.display="block"
}
else{
e.style.display="none"
}
return true;
}
<div>
<a href="http://jfaq.us/guestbook">Guestbook</a>
<div>
<input type="image" src="http://jfaq.us/more.png" id="moreorless" onclick="changeImage();return toggleMe('para3')" >
</div>
<div id="para3" style="display:none">
This is normally hidden, but shows up upon expanding.
This is normally hidden, but shows up upon expanding.
</div>
<a href="http://jfaq.us/about">About</a>
<div>
<input type="image" src="http://jfaq.us/more.png" id="moreorless" onclick="changeImage();return toggleMe('para2')" >
</div>
<div id="para2" style="display:none">
This is normally hidden, but shows up upon expanding.
This is normally hidden, but shows up upon expanding.
</div>
</div>
你所有的按钮具有相同的ID。 ID在文档中应该是唯一的。如果要使用选择器来定位多个元素,请使用类,或将事件传递到事件处理函数中并使用它。 – godfrzero
是的,我知道这一点。我把这个基本代码工作,因为我没有运气使用getElementsByName或getElementsbyClassName在我的尝试。你能提供一个小例子吗?我对javascript还是有点新鲜。 –
它看起来像你有jQuery包括,即使它是一个旧版本。如果您更新版本并从脚本开始绑定事件,您的代码可能会看起来更清晰。 – godfrzero