如何发现触发事件的 DOM 元素并相应地执行

How do I discover the DOM element that fired the event and behave accordingly

本文关键字:元素 DOM 执行 事件 何发现 发现      更新时间:2023-09-26

我正在尝试将多个<a>标签(或任何其他标签)绑定到同一个处理程序。我希望处理程序发现单击了哪个<a>标签并采取相应的行为。

例:

<a class="menu">Item1<a>
<a class="menu">Item2<a>
<a class="menu">Item3<a>
$(".menu").click(function(){
    //...Find out which a was clicked...
    ($(a .menu).html()=='Item1)
}
这样做

的最佳方法是什么?我希望它的行为方式类似于Apache的VirtualHosts部分。甚至有可能做到这一点吗?

使用 jQuery $(this)

$(".menu").click(function(){
    $(this).html('Item1');
}

以下是与jQuery的区别:"$(this)"和"this"有什么区别?

this 关键字将是触发事件的元素:

$(".menu").click(function(){
    var clickedItem = this;
    alert(clickedItem.innerHTML);
}

如果你愿意,你可以把它包装在一个jQuery对象中:

$(".menu").click(function(){
    var clickedItem = $(this);
    if (clickedItem.text() === 'Item1') {
        alert('It was item 1');
    }
}