前端小白,请教一个关于用 js 点击页面元素的问题。

2021-01-06 16:12:18 +08:00
 Marsss
我在测试某个网站的前端代码的时候,用 chrome 打开网站,我发现这网站的前端有很多地方鼠标放上去,鼠标变为手的形状,鼠标点击正常。但是当我打开 F12,在 console 里面,用 document.getElementsByClassName 选择到这个 div 元素,然后 document.getElementsByClassName("divClassName").click() 却不起作用。

我确定我确实选择到这个元素了,因为在 console 里鼠标移上去,能看到页面确实是对应的 div 元素。我试过换邻近的 div 都是一样不起作用。

我对前端确实了解很少,不明白这里的原理,我以为鼠标能点的,用 js 也一定有方法点击。

还请大家指点一下。
2234 次点击
所在节点    JavaScript
17 条回复
kop1989
2021-01-06 16:17:20 +08:00
假定没有其他错误的话,推断是未见得他把你理解的点击事件放在了“click”事件中。
mara1
2021-01-06 16:18:07 +08:00
1. document.getElementsByClassName 可能拿到多个元素
2. 想象 1 个框里面套了一个框,你可能手点的是内部的框,js 点的外部的框

其他我想不来了,楼下补充
darknoll
2021-01-06 16:18:52 +08:00
document.getElementsByClassName("divClassName") 不是返回数组吗
tutou
2021-01-06 16:19:42 +08:00
document.getElementsByClassName("divClassName") 返回的是数组,打印看看不就知道了
jydeng
2021-01-06 16:19:56 +08:00
用开发者工具直接选中元素,然后$0.click()。
或者就是如楼上说的,没有绑定在 click 事件中。
yzliua
2021-01-06 16:21:04 +08:00
楼上说的对,假定只有一个同类元素,你也得下面这种用法
document.getElementsByClassName("divClassName")[0].click()
LiubaiQ
2021-01-06 16:27:16 +08:00
cursor:pointer 的效果,破案,各位散了吧
wangjiang
2021-01-06 16:28:58 +08:00
也许只是 cursor:pointer
Marsss
2021-01-06 16:32:24 +08:00
我是用了[0]来取了单独的 div 的,也试了 @jydeng 说的方法,用开发者工具直接选中元素,然后$0 也看到选中了,然后$0.click()也是无效,相邻的 div 都试过了。
Marsss
2021-01-06 16:35:14 +08:00
楼上上的 cursor:pointer 是指只是一个效果么,但是我用鼠标点了,能观察到页面样式的改变(确实没观察到有链接跳转),我该如何用 js 来实现这个点击后页面样式改变的效果呢
putaozhenhaochi
2021-01-06 16:35:35 +08:00
楼上说的 CSS .
shyrock
2021-01-06 17:50:45 +08:00
前端小白猜测,点击事件可能不是绑定的这个元素,而可能是上级元素甚至 document 。
比如在 document.onclick()里面判断点击落点并处理。这样你 getElements().click()无法模拟触发。
dengshen
2021-01-06 17:53:11 +08:00
放上去? hover 触发的 pointer
dd112389
2021-01-07 18:03:07 +08:00
建议贴网址和图片.
source
2021-01-12 10:19:10 +08:00
楼主只说了鼠标点击会有“页面样式的改变”,可能本身无关 js,可能是纯 css 写的 focus,active 效果?
source
2021-01-12 10:19:42 +08:00
还是建议贴一下网址
Roger006
2021-02-24 10:51:51 +08:00
可以再验证一下 1#的说法,绑定的事件,也有可能是 mousedown|mouseup,移动设备下是 touchstart|touchend 。直接用鼠标点击的时候,这些都是会触发的
或者 2#,是这个节点的内部触发的也有可能

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/742242

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX