Jquery脚本中“this”这个词的含义是什么?

时间:2012-03-04 15:39:50

标签: javascript jquery

您好我是JavaScript和JQuery语言的新手。我开始看到一些JQuery脚本的例子。

我有以下代码段:

 <script type="text/javascript">

   $(document).ready(function(){

   $("p").click(function(){

   $(this).hide();

    });

  });

</script>

我的问题:这行代码中“this”的含义是什么:

          $(this).hide();

3 个答案:

答案 0 :(得分:2)

它指的是您的选择器p 中的每个$("p")标记被点击。例如,您可以看到您点击的每个p代码的html,如下所示:

$("p").click(function(){
   alert($(this).html());
});

另请注意,上述背景下的$(this)this意味着不同的事情。后者this指的是DOM元素本身,它不具有可用的jQuery方法/属性,例如:

$("p").click(function(){
   alert(this.html());
});

无法使用,因为html()将无法使用,因为this引用了那里的DOM元素。因此,如果您想使用jQuery方法,请改用$(this)

答案 1 :(得分:2)

jQuery this这样的片段中的大多数时间都是指HTMLElement个对象。此处thisHTMLParagraphElementP标记对象 $(this)是指从当前jQuery对象创建的HTMLElement对象。

但请记住,JavaScript中this的含义会根据调用函数的位置而改变。

答案 2 :(得分:2)

  • $('p')会将一个或多个段落元素(包含在jQuery魔法中)添加到数组
  • .click()是一个jQuery函数,将在找到的每个段落元素上调用(在数组中)
  • function(){...}是该点击事件的定义,您可以在点击该段落时执行任何javascript选项
  • this是一个全局变量,它引用调用DOM对象,我认为默认情况下它是window,但在这种情况下,它将是每个段落的HTML元素。

因为你想在段落元素上调用jQuery函数(hide()),你必须用所有jQuery函数包装基础(HTML / DOM)对象,这是$(this)所做的;它需要this并将所有jQuery内容添加到它,将其转换为jQuery对象,以便您可以调用所有jQuery函数。换句话说:

  • this是基础对象
  • $(this)几乎相同,但它是一个jQuery对象,它继承了范围内的对象,因此你可以调用你想要的所有jQuery糖