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

jQuery では、次のようにして最初の子のクリックをトリガーできます。

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

querySelectorまたはquerySelectorAllを使用できます: (ノードまたはで呼び出すことができます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();
}

任意のクエリ セレクターをパラメーターとして使用できます。1 つだけが必要な場合は、querySelector代わりに使用してください。同じですが、NodeList を返す代わりに Node を返すので、そのまま直接使用できます。

この特定のケースでquerySelectorAllは、 は 1 つの要素のみを返しますが、おわかりいただけたと思います。

または、本当に最初の子だけが必要な場合は、firstChildを使用します。

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