jQuery按钮点击“this”

时间:2017-04-28 19:28:14

标签: javascript jquery

假设我们有一个简单的事件按钮处理程序:

$( "#aButton" ).click(function() {
   console.log( "tile" + this.val() + "clicked" );
});

我意识到“这个”大多数上下文都会引用“窗口”对象.....但到处都是我一直在看“这个”的代码示例,谈论Jquery是一个特例,其中{{ 1}}暗示是事件处理程序所在的任何对象(我一直认为this基于“调用”函数,“Window”是什么称为函数?

如果对于jQuery这不是真的,那么有没有更好的方法来引用被点击的对象?

3 个答案:

答案 0 :(得分:2)

使用$(this)获取点击的元素。

$("#aButton").click(function() {
    console.log("tile " + $(this).val() + " clicked");
});

此外,您可以注意到$(this)[0] === this

使用内置JavaScript方法时可以使用

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方法。