JS获取指定class,如何用代码触发该对象的点击事件

EricFantastic 2018-05-08 11:39:47
html页面代码:
<a class="btn_accept">自动执行超链接点击事件</a>

因为标签中没有id属性,要么js直接document.getElementById("xxx").click();就可以了;
但是好像document.getElementsByClassName("btn_accept").click()不行,class对象下是不是没click方法?
后面用下面的方式也是不能触发点击事件:
<script>
function myTest() {
var e = document.createEvent("MouseEvents");
e.initEvent("onclick", true, true); 
document.getElementsByClassName("btn_accept").dispatchEvent(e);
}
</script>
求大神指教
...全文
7591 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
iMoe 2019-03-17
  • 打赏
  • 举报
回复
这个方法有效啊,我试了一下可以。
EricFantastic 2018-05-08
  • 打赏
  • 举报
回复
引用 12 楼 xueyuxiongshi 的回复:
[quote=引用 11 楼 EricFantastic 的回复:] [quote=引用 10 楼 xueyuxiongshi 的回复:] [quote=引用 9 楼 EricFantastic 的回复:] [quote=引用 8 楼 xueyuxiongshi 的回复:] [quote=引用 7 楼 EricFantastic 的回复:] [quote=引用 4 楼 xueyuxiongshi 的回复:] 你的这个页面也就是说只能修改javascrip中的代码咯,你上面写的document.getElementsByClassName("xxx"); 是获取页面中的class = xxx的所有DOM元素的集合,直接调用click方法是不行的.
是的只能修改js,但是这个页面只有一个class是btn_accept的,应该不影响吧[/quote]

document.getElementsByTagName("btn_accept")[0].click();       //这样应该就可以了
[/quote] 这个试过的不可以,所以怀疑是不是对象没有点击方法[/quote] 你访问这个页面的时候,点击之后没有效果吗?这就难办了呀![/quote] 关键点击是有效果的,标签上<a href="javascript:;" class="btn_accept">确认</a>长这样[/quote] 如果是这样的话,他的效果事件可能是写在js中的,你找一下,别人写的不一定是click事件,而且你的这个超链接标签是页面加载之后js生成的话,click事件也是不能执行的呀[/quote] 看来只能想其他办法了
xueyuxiongshi 2018-05-08
  • 打赏
  • 举报
回复
引用 11 楼 EricFantastic 的回复:
[quote=引用 10 楼 xueyuxiongshi 的回复:] [quote=引用 9 楼 EricFantastic 的回复:] [quote=引用 8 楼 xueyuxiongshi 的回复:] [quote=引用 7 楼 EricFantastic 的回复:] [quote=引用 4 楼 xueyuxiongshi 的回复:] 你的这个页面也就是说只能修改javascrip中的代码咯,你上面写的document.getElementsByClassName("xxx"); 是获取页面中的class = xxx的所有DOM元素的集合,直接调用click方法是不行的.
是的只能修改js,但是这个页面只有一个class是btn_accept的,应该不影响吧[/quote]

document.getElementsByTagName("btn_accept")[0].click();       //这样应该就可以了
[/quote] 这个试过的不可以,所以怀疑是不是对象没有点击方法[/quote] 你访问这个页面的时候,点击之后没有效果吗?这就难办了呀![/quote] 关键点击是有效果的,标签上<a href="javascript:;" class="btn_accept">确认</a>长这样[/quote] 如果是这样的话,他的效果事件可能是写在js中的,你找一下,别人写的不一定是click事件,而且你的这个超链接标签是页面加载之后js生成的话,click事件也是不能执行的呀
xueyuxiongshi 2018-05-08
  • 打赏
  • 举报
回复
引用 9 楼 EricFantastic 的回复:
[quote=引用 8 楼 xueyuxiongshi 的回复:] [quote=引用 7 楼 EricFantastic 的回复:] [quote=引用 4 楼 xueyuxiongshi 的回复:] 你的这个页面也就是说只能修改javascrip中的代码咯,你上面写的document.getElementsByClassName("xxx"); 是获取页面中的class = xxx的所有DOM元素的集合,直接调用click方法是不行的.
是的只能修改js,但是这个页面只有一个class是btn_accept的,应该不影响吧[/quote]

document.getElementsByTagName("btn_accept")[0].click();       //这样应该就可以了
[/quote] 这个试过的不可以,所以怀疑是不是对象没有点击方法[/quote] 你访问这个页面的时候,点击之后没有效果吗?这就难办了呀!
EricFantastic 2018-05-08
  • 打赏
  • 举报
回复
引用 8 楼 xueyuxiongshi 的回复:
[quote=引用 7 楼 EricFantastic 的回复:] [quote=引用 4 楼 xueyuxiongshi 的回复:] 你的这个页面也就是说只能修改javascrip中的代码咯,你上面写的document.getElementsByClassName("xxx"); 是获取页面中的class = xxx的所有DOM元素的集合,直接调用click方法是不行的.
是的只能修改js,但是这个页面只有一个class是btn_accept的,应该不影响吧[/quote]

document.getElementsByTagName("btn_accept")[0].click();       //这样应该就可以了
[/quote] 这个试过的不可以,所以怀疑是不是对象没有点击方法
xueyuxiongshi 2018-05-08
  • 打赏
  • 举报
回复
引用 7 楼 EricFantastic 的回复:
[quote=引用 4 楼 xueyuxiongshi 的回复:] 你的这个页面也就是说只能修改javascrip中的代码咯,你上面写的document.getElementsByClassName("xxx"); 是获取页面中的class = xxx的所有DOM元素的集合,直接调用click方法是不行的.
是的只能修改js,但是这个页面只有一个class是btn_accept的,应该不影响吧[/quote]

document.getElementsByTagName("btn_accept")[0].click();       //这样应该就可以了
EricFantastic 2018-05-08
  • 打赏
  • 举报
回复
引用 10 楼 xueyuxiongshi 的回复:
[quote=引用 9 楼 EricFantastic 的回复:] [quote=引用 8 楼 xueyuxiongshi 的回复:] [quote=引用 7 楼 EricFantastic 的回复:] [quote=引用 4 楼 xueyuxiongshi 的回复:] 你的这个页面也就是说只能修改javascrip中的代码咯,你上面写的document.getElementsByClassName("xxx"); 是获取页面中的class = xxx的所有DOM元素的集合,直接调用click方法是不行的.
是的只能修改js,但是这个页面只有一个class是btn_accept的,应该不影响吧[/quote]

document.getElementsByTagName("btn_accept")[0].click();       //这样应该就可以了
[/quote] 这个试过的不可以,所以怀疑是不是对象没有点击方法[/quote] 你访问这个页面的时候,点击之后没有效果吗?这就难办了呀![/quote] 关键点击是有效果的,标签上<a href="javascript:;" class="btn_accept">确认</a>长这样
EricFantastic 2018-05-08
  • 打赏
  • 举报
回复
引用 4 楼 xueyuxiongshi 的回复:
你的这个页面也就是说只能修改javascrip中的代码咯,你上面写的document.getElementsByClassName("xxx"); 是获取页面中的class = xxx的所有DOM元素的集合,直接调用click方法是不行的.
是的只能修改js,但是这个页面只有一个class是btn_accept的,应该不影响吧
EricFantastic 2018-05-08
  • 打赏
  • 举报
回复
引用 5 楼 EricFantastic 的回复:
[quote=引用 3 楼 showbo 的回复:] document.getElementsByClassName返回数组,要 获取dom对象来触发 document.getElementsByClassName("btn_accept")[0].dispatchEvent(e); Web开发学习资料推荐 jqGrid单元格编辑配置,事件及方法
修改成这样 var e = document.createEvent("MouseEvents"); e.initEvent("click", true, true); //这里的click或onclick都还是不可以,这两个方法存在吗 document.getElementsByClassName("example")[0].dispatchEvent(e);[/quote] 上面那个名称写错了,用btn_accept也是不可以
EricFantastic 2018-05-08
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
document.getElementsByClassName返回数组,要 获取dom对象来触发 document.getElementsByClassName("btn_accept")[0].dispatchEvent(e); Web开发学习资料推荐 jqGrid单元格编辑配置,事件及方法
修改成这样 var e = document.createEvent("MouseEvents"); e.initEvent("click", true, true); //这里的click或onclick都还是不可以,这两个方法存在吗 document.getElementsByClassName("example")[0].dispatchEvent(e);
  • 打赏
  • 举报
回复
document.getElementsByClassName返回数组,要 获取dom对象来触发 document.getElementsByClassName("btn_accept")[0].dispatchEvent(e);

Web开发学习资料推荐
jqGrid单元格编辑配置,事件及方法
xueyuxiongshi 2018-05-08
  • 打赏
  • 举报
回复
你的这个页面也就是说只能修改javascrip中的代码咯,你上面写的document.getElementsByClassName("xxx"); 是获取页面中的class = xxx的所有DOM元素的集合,直接调用click方法是不行的.
EricFantastic 2018-05-08
  • 打赏
  • 举报
回复
引用 1 楼 LittleMan_LC 的回复:
为什么不用a标签下的href属性,直接跳转
这个页面是别人的不能改动,所以比较麻烦
LittleMan_LC 2018-05-08
  • 打赏
  • 举报
回复
为什么不用a标签下的href属性,直接跳转

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧