我想使用jQuery将“click”事件处理程序附加到ID为'foo'的元素的第一个子元素。我知道这样做的语法是:
$('#foo:first-child').bind('click', function(event) {
// I want to access the first child here
})
在处理程序主体中,我想访问导致事件被触发的元素。我读过某个地方,你不能简单地通过'this'来引用它,那么我该如何访问呢?
答案 0 :(得分:2)
$(this).doStuff()
答案 1 :(得分:2)
忘记你在某处读到的内容并继续使用this关键字:
$("#foo:first-child").click(function(event) {
$(this).css("background", "pink");
});
答案 2 :(得分:2)
只需添加到Greg's reply,就可以进行一些修正:
this === $('#foo:first-child') // returns false
$(this) === $('#foo:first-child') // returns true
this
引用HTML元素本身,而$(this)
只是将其转换为jQuery元素。
答案 3 :(得分:0)
只需使用“this”:
$('#foo:first-child').bind('click', function(event) {
alert(this === $('#foo:first-child')); // True
this.style.color = "red"; // First child now has red text.
})