在事件处理程序中,为什么$(this)返回的不是$('。selector')?
示例:
$('.container').click(function () {
console.log($(this));
console.log($('.container'));
});
当您在控制台中查看时,结果会有所不同。
答案 0 :(得分:9)
this
始终是发起事件的元素,换句话说,您完全点击的.container
元素中的哪一个。
e.g:
<div class="container">container1</div>
<span class="container">container2</span>
正如Jonathan Lonowski所说,$(".container")
选择了.container
个元素,但this
是您点击的元素,span
或div
。
此外,$(this)
只是将该元素包装到JQuery对象中,this
关键字本身就是本机javascript。
答案 1 :(得分:6)
在事件处理程序中,this
通常会引用捕获事件的单个 .container
元素。
选择器将再次在整个文档中找到所有.container
。