假设我们有一个简单的事件按钮处理程序:
$( "#aButton" ).click(function() {
console.log( "tile" + this.val() + "clicked" );
});
我意识到“这个”大多数上下文都会引用“窗口”对象.....但到处都是我一直在看“这个”的代码示例,谈论Jquery是一个特例,其中{{ 1}}暗示是事件处理程序所在的任何对象(我一直认为this
基于“调用”函数,“Window”是什么称为函数?
如果对于jQuery这不是真的,那么有没有更好的方法来引用被点击的对象?
答案 0 :(得分:2)
使用$(this)
获取点击的元素。
$("#aButton").click(function() {
console.log("tile " + $(this).val() + " clicked");
});
此外,您可以注意到$(this)[0] === this
this
,例如.addEventListener()
。在此上下文中使用this
将返回触发事件的节点。
答案 1 :(得分:2)
this
是原始DOM元素。如果要在其上使用jQuery函数,则必须将其包装在jQuery对象中。
console.log( "tile" + $(this).val() + "clicked" );
// ^^^^^^^^^^^^^
输入有一个名为value
的属性,它具有相同的功能。所以你可以在原始DOM输入上使用它,如下所示:
console.log( "tile" + this.value + "clicked" );
// ^^^^^^^^^^
答案 2 :(得分:1)
您点击的对象可以由this
引用,因此this.id
会为您提供按钮ID" aButton"。但是,如果你想使用jQuery的方法,那么你必须说$(this).attr('id')
这将再次给你" aButton"。
所以你有不同的机制可供使用,但如果你使用的是jQuery,最好使用jQuery方法。