您好我是JavaScript和JQuery语言的新手。我开始看到一些JQuery脚本的例子。
我有以下代码段:
<script type="text/javascript">
$(document).ready(function(){
$("p").click(function(){
$(this).hide();
});
});
</script>
我的问题:这行代码中“this”的含义是什么:
$(this).hide();
答案 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
个对象。此处this
是HTMLParagraphElement
或P
标记对象
$(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糖