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

如何通过元素类名获取点击元素ID(尽量不使用jQuery)

原生JavaScript实现点击获取元素ID(无需jQuery、不修改HTML)

没问题,我来帮你搞定这个需求!既然你不想依赖jQuery,也没法修改现有HTML结构或添加onclick属性,用原生JS的事件委托就能完美解决。

核心思路

利用事件委托机制,给整个文档绑定点击事件,当点击事件触发时,判断实际点击的元素是否是目标类(.my_class)的元素,再获取它的ID即可。这种方式不仅支持现有元素,后续动态添加的.my_class元素也能生效。

基础实现代码

document.addEventListener('click', function(e) {
  // 判断点击的元素是否包含目标类
  if (e.target.classList.contains('my_class')) {
    const clickedId = e.target.id;
    console.log(clickedId + " ...");
  }
});

更健壮的版本(支持子元素点击)

如果你的.my_class元素内部还有其他子元素(比如<p id='123' class='my_class'><span>x</span></p>),点击子元素时也想拿到父元素的ID,可以用closest()方法来匹配最近的目标元素:

document.addEventListener('click', function(e) {
  // 找到最近的包含.my_class类的元素(包括自身)
  const targetElement = e.target.closest('.my_class');
  if (targetElement) {
    const clickedId = targetElement.id;
    console.log(clickedId + " ...");
  }
});

顺便说下你原来jQuery代码的问题

你之前写的$(document).on('click', '.my_class', this.id, function (id) { ... })参数有误:第三个参数并不是用来传递ID的,回调函数的第一个参数是事件对象,你需要通过$(this).attr('id')或者event.target.id来获取ID。不过既然你不想用jQuery,咱们就专注原生方案啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:25:46