获取触发事件的元素的ID

有什么方法可以获取触发事件的元素的ID吗?

我在想这样的事情:

<html>
  <head>
    <script type="text/javascript" src="starterkit/jquery.js"></script>
    <script type="text/javascript">
      $(document).ready(function () {
        $("a").click(function () {
          var test = caller.id;
          alert(test.val());
        });
      });
    </script>
  </head>
  <body>
    <form class="item" id="aaa">
      <input class="title"></input>
    </form>
    <form class="item" id="bbb">
      <input class="title"></input>
    </form>
  </body>

</html>

除非var test应该包含id "aaa" ,如果事件是从第一个表单触发的,而"bbb"则是从第二个表单触发的。


在jQuery中, event.target总是引用触发事件的元素,其中'event'是传递给函数的参数。 http://api.jquery.com/category/events/event-object/

$(document).ready(function() {
    $("a").click(function(event) {
        alert(event.target.id);
    });
});

还要注意, 'this'也可以工作,但它不是一个jQuery对象,所以如果你想在它上使用jQuery函数,那么你必须把它称为'$(this)' ,例如:

$(document).ready(function() {
    $("a").click(function(event) {
        // this.append wouldn't work
        $(this).append(" Clicked");
    });
});

作为参考,试试这个! 有用!

jQuery("classNameofDiv").click(function() {
    var contentPanelId = jQuery(this).attr("id");
    alert(contentPanelId);
});

虽然在其他文章中提到过,但我想说明一下:

$(event.target).id是未定义的

$(event.target)[0].id给出id属性。

event.target.id也给出了id属性。

this.id给出了id属性。

$(this).id是未定义的。

当然,差异是jQuery对象和DOM对象之间的差异。 “id”是一个DOM属性,所以你必须在DOM元素对象上使用它。

(它绊倒了我,所以它可能绊倒别人)

链接地址: http://www.djcxy.com/p/14621.html

上一篇: Getting the ID of the element that fired an event

下一篇: 1.10.2.min.map is triggering a 404 (Not Found)