2012-06-21 270 views
1

這是我關於在JavaScript中單擊按鈕的第二個問題,但是這個我真的很鬱悶:我試圖用javascript單擊圖像按鈕,但沒有太多可以繼續,因爲源只給出有關圖像按鈕JavaScript點擊圖片按鈕

<div id="claimBtnDv" style="bottom:-30px; position:absolute; right:0; margin-top:0;"> 
    <input type="image" class="btnClaim" src="websitebuttonimage" onclick="alert('buttonclicked');"> 
</div> 

我試圖做document.getElementById('claimBtnDv').click(),但沒有成功這個信息,有沒有其他的方法來使用?

+1

它爲我的作品 - http://jsfiddle.net/wMRbn/ –

+0

你得到消息 '按鈕,單擊' 當您使用的document.getElementById( 'claimBtnDv')點擊()? – Nubcake

回答

3

如果您無法更改HTML,並且需要使用javascript單擊圖像,則可以進入子節點以查找圖像。由於提供了類名,這很容易。

var nodes = document.getElementById('claimBtnDv').childNodes; 

for (i = 0; i < nodes.length; i++) { 
    if (nodes[i].className === "btnClaim") { 
     console.log("clicking!"); 
     nodes[i].click(); 
     break; 
    } 
} 
+0

您是對的。更新的代碼。 雖然,它不會導致錯誤,因爲循環會在最後一個節點之後退出。 –

-1

它看起來像在這種情況下工作。你想分配不同的點擊事件嗎?

的jquery將允許你這樣做:(你給它 'btnClaim' 的ID後)

$("input.btnClaim").click(function(){ 
    //in here can go a lot more functions, etc. 
}); 

的JavaScript會做:

var X = document.getElementById("btnClaim"); 
x.onclick = "JAVASCRIPT GOES HERE"; 
//from what the wc3 doc looks like, you need to have it in quotes, 
// but i may be mistaken. 

也許可以幫助?

+0

我試過引號,但它仍然沒有工作,我只是測試,看看我是否可以點擊它通過document.getElementById()是否有沒有其他方式來做到這一點? – Nubcake

+0

**不正確**對於'onclick'你應該提供一個函數,而不是一個字符串。 –

+0

是的,我知道。我只是從wc3複製.... http://www.w3schools.com/jsref/event_onclick.asp 我想我忘了定義「javascript在這裏」的含義。 – Fallenreaper

1

您的代碼幾乎工作 - 只是改變你的class="btnClaim"id="btnClaim" - 和getElementById將工作 - http://jsfiddle.net/wMRbn/1/

document.getElementById('btnClaim').onclick = function() { 
    alert ("click"); 
}​ 

UPDATE 爲了讓沒有id的元素,你可以做到這一點 - 獲取父元素通過id並附加一個事件監聽到其input子 - http://jsfiddle.net/wMRbn/3/

var img = document.getElementById("claimBtnDv").getElementsByTagName("input")[0]; 
img.onclick = function() { 
    alert ("click"); 
}​ 
+0

如果可以的話,我會改變它,但是這就是網頁源代碼的輸出結果,你不能點擊一個圖像按鈕的類名可以嗎? – Nubcake

+0

已更新,使其無需輸入ID即可工作 –