如何以编程方式单击子元素?

时间:2017-12-01 14:48:09

标签: javascript

我尝试使用Chrome扩展程序内容脚本点击Google文档中的按钮。

在控制台中:

document.getElementsByClassName('docos-input-buttons')[0];

收率:

<div class="docos-input-buttons"><div role="button" class="goog-inline-block jfk-button jfk-button-action docos-input-post docos-input-buttons-post" style="user-select: none;" aria-disabled="false" aria-label="Post Comment" tabindex="0" data-tooltip="Post Comment">Comment</div><div role="button" class="goog-inline-block jfk-button jfk-button-standard docos-input-cancel" tabindex="0" data-tooltip="Discard comment" aria-label="Discard comment" style="user-select: none;">Cancel</div></div>

然后我可以深入了解孩子们:

document.getElementsByClassName('docos-input-buttons')[0].children[0];

收率:

<div role="button" class="goog-inline-block jfk-button jfk-button-action docos-input-post docos-input-buttons-post" style="user-select: none;" aria-disabled="false" aria-label="Post Comment" tabindex="0" data-tooltip="Post Comment">Comment</div>

我认为将.click()添加到document.getElementsByClassName然后会点击这个元素......但显然我错过了一些东西。

当您手动点击按钮(它被设置为按钮)时,会发布Google文档评论。

但是以下结果&#34; undefined&#34;。

document.getElementsByClassName('docos-input-buttons')[0].children[0].click();

如何以编程方式单击普通javascript中的子节点?

1 个答案:

答案 0 :(得分:0)

  

如何以编程方式单击普通javascript中的子节点?

您的代码存在多个问题

  • 根据您分享的代码,您没有课程docos-input-buttons,请尝试使用docos-input-buttons-post

  • 您尝试访问的children没有div。它只有文本节点,可以通过element.childNodes[0]访问,但不支持click事件。

为什么不点击div本身

document.getElementsByClassName('docos-input-buttons-post')[0].click();

document.querySelector('docos-input-buttons-post').click();