为啥 $(this).id 不返回被点击元素的 ID? [复制]

Posted

技术标签:

【中文标题】为啥 $(this).id 不返回被点击元素的 ID? [复制]【英文标题】:Why doesn't $(this).id return the clicked element's ID? [duplicate]为什么 $(this).id 不返回被点击元素的 ID? [复制] 【发布时间】:2017-08-13 19:37:02 【问题描述】:

为什么我的this.id 在单击时返回未定义而不是按钮的 ID?我知道有与此稍有相似的问题,但似乎没有一个建议对我有用。在任何人建议之前,我也尝试过$(this).attr("id");

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width">
        <title>Meh</title>
    </head>
    <body>
      <h2>Hello</h2>
      <button id="warning" class="btn">Button</button>
      <p>Button id: <span id="show"></span></p>
      <script
        src="https://code.jquery.com/jquery-3.1.1.js">
      </script>
      <script 
        src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"> 
      </script>
      <script type="text/javascript">
        $(".btn").on("click", () => $("#show").html($(this).id));
      </script>
    </body>
</html>

谢谢!

【问题讨论】:

因为this不是一个有id的元素? 因为你使用的是箭头函数。阅读它。在这种情况下,您应该使用$(".btn").on("click", function () $("#show").html($(this).id) ); &lt;/script&gt; $(".btn").on("click", (ev) =&gt; $("#show").html(ev.target.id)); 或从活动中获取 @JordanS 谢谢。你的建议可以解决问题。 【参考方案1】:

这是您可以执行此操作的另一种方法:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width">
        <title>Meh</title>
    </head>
    <body>
      <h2>Hello</h2>
      <button id="warning" class="btn">Button</button>
      <p>Button id: <span id="show"></span></p>
      <script
        src="https://code.jquery.com/jquery-3.1.1.js">
      </script>
      <script 
        src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"> 
      </script>
      <script type="text/javascript">
        $('.btn').click(function(event)
            $("#show").html(event.target.id);
        );
      </script>
    </body>
</html>

【讨论】:

谢谢你,穆斯。 @CollinsOrlando,随时!

以上是关于为啥 $(this).id 不返回被点击元素的 ID? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

jquery 获取被点击元素的id属性值

仅更新被点击元素的状态

jQuery选取点击元素获得当前点击元素信息

有个html 元素, 设置了onclick 事件,怎么在onclick绑定的函数里,获取被点击元素的id 值

为啥 HTML 中不允许重复的 ID 值?

为啥 GCM 会为某些 android 设备返回空的注册 ID?