jQuery顶层$(this)的含义

时间:2018-07-30 03:02:29

标签: jquery html dom this element

我了解事件处理程序中$(this)的含义。

$("div#d1").on("mouseover", function() {
  $(this).attr("id", "d2");
  alert("id: " + $(this).attr("id"));
});

但是,当它在jQuery代码的顶层使用时,这是什么意思?

var tgt = $("h2#slider");
tgt.hide();
tgt.slideDown(2000);
$(this).on("click", function() {
  tgt.slideUp(); 
}); 

3 个答案:

答案 0 :(得分:4)

根级别的

this引用窗口对象。
https://jsfiddle.net/z20x9owq/

答案 1 :(得分:0)

在回调Jquery "$(this)"中使用时,指的是当前DOM元素 但是在回调之外使用时,$(this)是一个数组,其Window对象位于第0个索引,与Javascript“ this”关键字相同,在函数之外使用时,它也是Window对象。 一个很好的例子是:

console.log($(this)===this); //return false
console.log($(this)[0]===this); //return true

希望它会有所帮助:)

答案 2 :(得分:-1)

“ this”是html元素,没有“ on”方法或任何jQuery方法。您必须使用$(this)将其转换为jquery元素,才能使用“ on”方法