技术解析

前端小白,请教一个关于用 js 点击页面元素的问题。
0
2021-08-11 02:09:35
idczone
我在测试某个网站的前端代码的时候,用 chrome 打开网站,我发现这网站的前端有很多地方鼠标放上去,鼠标变为手的形状,鼠标点击正常。但是当我打开 F12,在 console 里面,用 document.getElementsByClassName 选择到这个 div 元素,然后 document.getElementsByClassName("divClassName").click() 却不起作用。

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

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

还请大家指点一下。
假定没有其他错误的话,推断是未见得他把你理解的点击事件放在了“click”事件中。

1. document.getElementsByClassName 可能拿到多个元素
2. 想象 1 个框里面套了一个框,你可能手点的是内部的框,js 点的外部的框
其他我想不来了,楼下补充

document.getElementsByClassName("divClassName") 不是返回数组吗

document.getElementsByClassName("divClassName") 返回的是数组,打印看看不就知道了

用开发者工具直接选中元素,然后$0.click()。
或者就是如楼上说的,没有绑定在 click 事件中。

楼上说的对,假定只有一个同类元素,你也得下面这种用法
document.getElementsByClassName("divClassName")[0].click()

cursor:pointer 的效果,破案,各位散了吧

也许只是 cursor:pointer

我是用了[0]来取了单独的 div 的,也试了 说的方法,用开发者工具直接选中元素,然后$0 也看到选中了,然后$0.click()也是无效,相邻的 div 都试过了。

楼上上的 cursor:pointer 是指只是一个效果么,但是我用鼠标点了,能观察到页面样式的改变(确实没观察到有链接跳转),我该如何用 js 来实现这个点击后页面样式改变的效果呢

楼上说的 CSS .

前端小白猜测,点击事件可能不是绑定的这个元素,而可能是上级元素甚至 document 。
比如在 document.onclick()里面判断点击落点并处理。这样你 getElements().click()无法模拟触发。

放上去? hover 触发的 pointer

建议贴网址和图片.

楼主只说了鼠标点击会有“页面样式的改变”,可能本身无关 js,可能是纯 css 写的 focus,active 效果?

还是建议贴一下网址

可以再验证一下 1mousedown|mouseup,移动设备下是 touchstart|touchend 。直接用鼠标点击的时候,这些都是会触发的
或者 2#,是这个节点的内部触发的也有可能

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服