我在執行我想要的代碼時遇到了一些麻煩。我有多個部分,我已經設置切換顯示/隱藏,並且它的功能正確。但是,我現在試圖將圖像切換到「更多」,而不是始終靜止的位置,我希望它在展開時切換到「較少」。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