为什么'selector'的返回值与'this'不同

时间:2014-06-11 14:26:07

标签: javascript jquery console.log

在事件处理程序中,为什么$(this)返回的不是$('。selector')?

示例:

$('.container').click(function () {
    console.log($(this));
    console.log($('.container'));
});

jsFiddle

当您在控制台中查看时,结果会有所不同。

2 个答案:

答案 0 :(得分:9)

this始终是发起事件的元素,换句话说,您完全点击的.container元素中的哪一个。

e.g:

<div class="container">container1</div>
<span class="container">container2</span>

正如Jonathan Lonowski所说,$(".container")选择了.container个元素,但this是您点击的元素,spandiv

此外,$(this)只是将该元素包装到JQuery对象中,this关键字本身就是本机javascript。

答案 1 :(得分:6)

在事件处理程序中,this通常会引用捕获事件的单个 .container元素。

选择器将再次在整个文档中找到所有.container