获取触发事件的元素的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