<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Demo</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
var headings = $('h3');
var paras = $('p');
paras.hide().eq(0).show();
headings.click(function() {
var cur = $(this); //save the element that has been clicked for easy referal
cur.siblings('p').hide(); //hide all the paragraphs
cur.next('p').show(); //get the next paragraph after the clicked header and show it
});
</script>
<style type="text/css">
p,h3 {margin: 0; padding: 0;}
p {height: 150px; width: 200px; border: 1px solid black;}
h3 {height: 50px; width: 200px; background-color: blue; color: white; border: 1px solid black;}
</style>
</head>
<body>
<h3>Item 1 </h3>
<p>Item 1 content</p>
<h3>Item 2 </h3>
<p>Item 2 content</p>
<h3>Item 3 </h3>
<p>Item 3 content</p>
<h3>Item 4</h3>
<p>Item 4 content</p>
</body>
</html>
以上代码摘自:http://www.1stwebdesigner.com/tutorials/jquery-for-complete-beginners-part-3/
问题:
这一行:var cur = $(this);
我知道this
表示已点击的h3
,但为什么我们不能这样写:var cur = this;
有什么区别? this
和$(this)
在这里?
答案 0 :(得分:5)
$(this)
将this
返回的DOM元素转换为jQuery对象,从中可以继续使用jQuery。
答案 1 :(得分:2)
this
是对调用当前函数的成员的引用
例如
$(document).ready(function(){
$("#test").click(function(){
var jQuerizedElement = $( this ); // instead of calling it by its selector you can use this
});
});
现在你可以用它做更多的事情。
答案 2 :(得分:2)
this
返回DOM元素,而$(this)
返回jQuery对象。
this
相当于
$(this).get()
答案 3 :(得分:0)
$
是jQuery函数的简写。你也可以写:
var cur = jQuery(this);
jQuery“包裹”DOM元素和其他对象,以便为它们提供更多功能。就像将选择器字符串传递给jQuery构造函数一样,您可以传递一个原生DOM元素(this
是),它将成为一个jQuery对象。