1

这是我关于单击 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()但没有成功,还有其他方法可以使用吗?

4

3 回答 3

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;
    }
}
于 2012-06-21T22:27:14.917 回答
1

您的代码几乎可以工作 - 只需将您更改class="btnClaim"id="btnClaim"- 并且getElementById将工作 - http://jsfiddle.net/wMRbn/1/

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

更新 要获取没有元素的元素,id您可以这样做-通过获取父元素id并将事件侦听器附加到其input子元素-http: //jsfiddle.net/wMRbn/3/

var img = document.getElementById("claimBtnDv").getElementsByTagName("input")[0];
img.onclick = function () {
    alert ( "click" );
}​
于 2012-06-21T22:12:33.740 回答
-1

看起来它在这种情况下有效。您是否尝试为其分配不同的点击事件或其他内容?

jquery 将允许您执行以下操作:

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

javascript 会做(在你给它一个 'btnClaim' 的 id 之后):

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.

也许这有帮助?

于 2012-06-21T22:06:36.500 回答