获取触发事件的元素的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"
,如果事件是由第二个表单触发。
923
20
在jQuery中
event.target
总是指触发事件的元素,其中event
是传递给函数的参数。 http://api.jquery.com/category/events/event-object/还要注意的是,
this
也可以工作,但它不是一个jQuery对象,所以如果你想在它身上使用jQuery函数,那么你必须把它称为$(this)
,例如。作为参考,试试这个!它是有效的!
虽然在其他帖子中也有提到,但我还是想把这个问题说清楚。
$(event.target).id
未定义。$(event.target)[0].id
给出了id属性。event.target.id
也给出了id属性。this.id
给出了id属性。而 "event.target.id "也给出了id属性。
$(this).id
是未定义的。当然,区别在于jQuery对象和DOM对象之间。 "id".是一个DOM属性,所以你必须在DOM元素对象上才能使用它。 是一个DOM属性,所以你必须在DOM元素对象上才能使用它。
(它绊住了我,所以可能绊住了别人)
对于所有事件,不限于jQuery,你可以使用
当
event.target
失败时,就会回到IE的event.srcElement
上。 澄清一下,上面的代码不需要jQuery,但也可以和jQuery一起使用。你可以使用
(this)
来引用启动该函数的对象。'this'
是一个DOM元素,当你在一个回调函数内(在jQuery的上下文中),例如,被点击,每个,绑定等方法调用。在这里,你可以了解更多:http://remysharp.com/2007/04/12/jquerys-this-demystified/
我从数据库中动态生成一个表,接收JSON中的数据,并将其放入一个表中。 每个表的行都有一个唯一的 "ID",这个ID需要进一步的操作,所以,如果DOM被改变,你需要一个不同的方法。
在event属性中,我们有一个触发事件的元素。
我们得到DOM节点对象,并在其上设置了事件处理程序。
我们有的最多的嵌套节点开始冒泡的过程,在
事件对象总是事件处理程序的第一个属性,例如:
。
更多关于活动代表团的信息您可以阅读http://maciejsikora.com/standard-events-vs-event-delegation/
作为jQuery对象的源元素应该通过以下方式获得
这可以得到点击的源头,而不是点击函数被分配的元素。 当点击事件发生在父对象上时,这很有用。 例如,在表格行上发生了一个点击事件,而你需要被点击的单元格。
你可以尝试使用。
在委托事件处理程序的情况下,你可能会有这样的东西。
和你的JS代码是这样的。
你很可能会发现itemId是
undefined
,因为LI的内容被包裹在<span>
中,这意味着<span>
可能是事件目标。 你可以通过一个小的检查来解决这个问题,就像这样。或者,如果你喜欢最大限度地提高可读性(同时也避免不必要的jQuery包装调用的重复)。
当使用事件授权时,
.is()
方法对于验证你的事件目标(除其他外)是否是你需要的东西是非常宝贵的。 使用.closest(selector)
来搜索DOM树,使用.find(selector)
(一般与.first()
结合,如.find(selector).first()
)来向下搜索。 在使用.close()
时,你不需要使用.first()
,因为它只返回第一个匹配的祖先元素,而.find()
则返回所有匹配的后裔。这适用于大多数类型的元素。
这在比上述答案中提到的事件参数更高的
z-index
上工作。这样,你将始终得到(在本例中是
li
)元素的id
。 同样,当点击父元素的子元素时......。使用可以使用.on事件
工作中的JSFiddle[此处](http://jsfiddle.net/npvrx6sg/)。
只需使用 "this "参考。
或
this.element.attr("id")
在IE8中工作正常。这两个工作。
和
你可以使用这个函数来获取改变的项目的id和值(在我的例子中,我使用了一个Select标签。
我在和
我试着按照上面的描述寻找一个 "事件",但当请求函数启动时,它似乎并不可用。 我使用
this.element.attr("id")
来获取元素'的ID,似乎效果不错。