0

在 Javascript 中,我正在尝试自动化“onclick()”,但问题是我不知道如何将“onclick()”定向到感兴趣的元素。

但是,当元素确实有 ID 时,我会这样做:

var redbutton = "document.getElementById("red_button")"

if (redbutton) {
    redbutton.onclick();
    }

但是这一次,在查看了页面的HTML之后,我感兴趣的“onclick”没有ID,所以我不知道如何告诉我的浏览器点击它。但是,在它前面的行中,有一个 ID:

<div id="buttoncolor_pane" style="background-color: rgb(50, 50, 50); position: absolute; width: 400px; height: 200px; top: 30px; left: 0px; z-index: 998; padding-top: 25px; background-position: initial initial; background-repeat: initial initial;">
    <div style="width:140px; margin:10px auto; cursor:pointer" onclick="buttoncolor_submit('blue')">
    <div style="width:140px; margin:10px auto; cursor:pointer" onclick="buttoncolor_submit('yellow')">

有没有办法可以将我的代码定向到该行,然后告诉它执行“onclick”?

4

2 回答 2

0

您可以使用querySelectorquerySelectorAll:(可以在节点上调用或document

// get all div elements that are direct children of #buttoncolor_pane
var nodes = document.querySelectorAll('#buttoncolor_pane > div');
if (nodes === null) {
    return; // or do some other error handling
}

for (var i = 0; i < nodes.length; i++) {
    nodes[i].onclick();
}

您可以使用任何您喜欢的查询选择器作为参数。如果您只想要一个,请querySelector改用。是一样的,但是不是返回一个NodeList,而是返回一个Node,所以你可以直接使用它。

在这种特殊情况下,querySelectorAll只会返回一个元素,但我想你明白了。

或者,如果您真的只想要第一个孩子,请使用firstChild

document.getElementById('buttoncolor_pane').firstChild.onclick();
于 2013-07-20T06:29:59.903 回答
0

在 jQuery 中,您可以执行以下操作来触发对第一个孩子的点击:

$('#buttoncolor_pane').children().first().click()
于 2013-07-20T06:21:50.253 回答