有什么方法可以获取触发事件的元素的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 target = event.target || event.srcElement;
var id = target.id

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

其他回答

虽然在其他文章中提到过,但我还是想说清楚:

美元(event.target)。Id未定义

美元(event.target)[0]。Id给出Id属性。

id也给出了id属性。

这一点。Id给出Id属性。

and

(美元)。Id未定义。

当然,区别在于jQuery对象和DOM对象之间。“id”是一个DOM属性,所以你必须在DOM元素对象上才能使用它。

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

只要使用this引用

$(this).attr("id")

or

$(this).prop("id")

你可以简单地使用:

$(this).attr("id");

Or

$(event.target).attr("id");

但是$(this).attr("id")将返回事件监听器所附加的元素的id。 而当我们使用$(event.target).attr("id")时,它将返回被单击元素的id。 例如,在<div>中,如果我们有一个<p>元素,那么如果我们点击'div' $(event.target).attr("id")将返回<div>的id,如果我们点击'p',那么$(event.target).attr("id")将返回<p>的id。 所以根据你的需要使用它。

我从数据库中动态生成一个表,接收JSON中的数据并将其放入一个表中。每个表行都有一个唯一的ID,这是进一步操作所需要的,所以,如果DOM被改变了,你需要一个不同的方法:

$("table").delegate("tr", "click", function() {
   var id=$(this).attr('id');
   alert("ID:"+id);  
});

和我一起工作

jQuery自动完成

我尝试寻找如上所述的事件,但当请求函数触发时,它似乎不可用。我使用this.element.attr(“id”)来获得元素的id,它似乎工作得很好。