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

时间:2013-01-30 21:46:24

标签: javascript jquery dom javascript-events

我正在尝试将多个标签(或任何其他标签)绑定到同一个处理程序。我希望处理程序能够发现单击了哪个标记并相应地运行。

示例:

<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部分。甚至可以这样做吗?

2 个答案:

答案 0 :(得分:3)

使用jQuery $(this)

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

这是与jQuery: What's the difference between '$(this)' and 'this'?

的区别

答案 1 :(得分:2)

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');
    }
}