有没有办法获取触发事件的元素的 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 元素对象上才能使用它。
(它绊倒了我,所以它可能绊倒了别人)