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

我在想:

$(document).ready(function() { $(“a”).click(function() { VaR 测试 = caller.id; alert(test.val()); }); }); <script type=“text/javascript” src=“starterkit/jquery.js”></script> <表单类=“项目” id=“aaa”> <输入类=“标题”></input> </form> <表单类=“项目” id=“bb”> <输入类=“标题”></input> </form>

当然,除了var测试应该包含id“aaa”(如果事件是从第一个表单触发)和“bbb”(如果事件是从第二个表单触发)。


当前回答

作为jQuery对象的源元素应该通过

var $el = $(event.target);

这将为您提供单击的源,而不是分配了单击函数的元素。当单击事件在父对象上时是否有用 如。表行上的单击事件,您需要被单击的单元格

$("tr").click(function(event){
    var $td = $(event.target);
});

其他回答

您可以使用(this)引用触发该函数的对象。

'this'是一个DOM元素,当你在回调函数中(在jQuery上下文中),例如,被click, each, bind等方法调用。

你可以在这里了解更多:http://remysharp.com/2007/04/12/jquerys-this-demystified/

对于所有事件,不限于jQuery可以使用

var target = event.target || event.srcElement;
var id = target.id

事件的地方。目标失败,则返回事件。IE的srcElement。 澄清一下,上面的代码不需要jQuery,但也可以使用jQuery。

$(".classobj").click(function(e){
    console.log(e.currentTarget.id);
})

这适用于比上述答案中提到的事件参数更高的z-index:

$("#mydiv li").click(function(){

    ClickedElement = this.id;
    alert(ClickedElement);
});

通过这种方式,您将始终获得元素(在本例中为li)的id。此外,当单击父元素的子元素..

var buttons = document.getElementsByTagName('button');
var buttonsLength = buttons.length;
for (var i = 0; i < buttonsLength; i++){
    buttons[i].addEventListener('click', clickResponse, false);
};
function clickResponse(){
    // do something based on button selection here...
    alert(this.id);
}

在这里工作JSFiddle。