javascript - 如何模拟点击?
问题描述
我在网页上有一个元素。
<div class="profile-action profile-action--lg profile-action--color-yes profile-action--filled js-profile-header-vote-yes js-profile-header-vote" data-choice="yes" role="button">
<div class="profile-action__icon">
<i class="icon icon--stretch">
<svg class="icon__svg">
<use xlink:href="#floating-action-yes"></use>
</svg>
</i>
</div>
</div>
我正在尝试通过以下代码模拟点击事件。
document.getElementsByClassName("js-profile-header-vote-yes")[0].click()
它不会模拟对该元素的任何点击。我究竟做错了什么?
编辑:我尝试过 jQuery 和 dispatchEvent,它们也不起作用。我也尝试过硒,它可以工作,但这不是我想要的。
Edit2:我不想处理点击事件,我想模拟点击方法。
解决方案
.click()
工作得很好,但除非有一个eventListener附加到元素,否则什么都不会发生。
document.getElementsByClassname()
除非您特别需要 live ,否则我也会避免使用HTMLCollection
。document.querySelector('.classname')
在这里更合适,并返回一个NodeList
更可预测的静态,因为它不随 DOM 更新。
const buttonDiv = document.querySelector('.js-profile-header-vote-yes');
buttonDiv.addEventListener('click', () => console.log('clicked'));
buttonDiv.click();
<div class="profile-action profile-action--lg profile-action--color-yes profile-action--filled js-profile-header-vote-yes js-profile-header-vote" data-choice="yes" role="button">
<div class="profile-action__icon">
<i class="icon icon--stretch">
<svg class="icon__svg">
<use xlink:href="#floating-action-yes"></use>
</svg>
</i>
</div>
</div>
推荐阅读
- python - UnicodeEncodeError:“ascii”编解码器无法对位置 25-32 中的字符进行编码:序数不在范围内(128)
- python - 向量化前向传播
- python - 海龟子类“对象没有属性'_shown'”
- java - ISP 或 Windows 防火墙阻止 UDP 连接
- reactjs - 如何使用 mui datepicker 在 Reactjs 中过滤从和到特定日期的日期
- c# - 如果在c#中直接调用方法,如何显示警告
- unit-testing - Kent Beck 的 xUnit 示例中的拆卸逻辑
- sql - 将逗号分隔值拆分为多列
- json - 循环遍历csv文件并在python中构建json文件
- python - 创建帐户时如何让用户更改将每个密码和用户名保存在不同文件中的python程序的密码?