You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JavaScript的onclick()函数获取目标元素?

问题解决:onclick属性中获取事件目标元素

你的问题出在onclick绑定函数时传递的参数错误:你传的this是触发事件的DOM元素本身,不是事件对象,所以函数里的e是元素,自然没有event.target对应的target属性。

下面两种方法可以直接用onclick属性实现需求:

方法1:直接传递全局event对象

把HTML中的onclick="check(this)"改成onclick="check(event)",这样函数接收的e就是标准的事件对象,就能正常获取e.target:

修改后的HTML代码:

<div class="target-div">
    <div class="first-div" onclick="check(event)">
        hello everybody
    </div>
</div>
<div class="target-div">
    <div class="second_div" onclick="check(event)">
        hello everybody
    </div>
</div>

JS代码保持不变即可,此时console.log(e.target)会正确输出触发事件的目标元素。

方法2:同时传递事件对象和元素

如果需要同时拿到绑定事件的元素(原this)和事件对象,可以传递两个参数:

HTML代码:

<div class="target-div">
    <div class="first-div" onclick="check(event, this)">
        hello everybody
    </div>
</div>
<div class="target-div">
    <div class="second_div" onclick="check(event, this)">
        hello everybody
    </div>
</div>

JS代码修改为:

function check(e, elem){
  let targetElem = e.target  
  console.log({targetElem, bindElem: elem}) // targetElem是事件目标,elem是绑定onclick的元素
}

注意:全局event对象在严格模式下可能无法访问,所以推荐通过参数传递的方式获取事件对象,避免依赖全局变量。

内容的提问来源于stack exchange,提问作者user22633398

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:05:08