0
<!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已经点击了,但是为什么我们不能这样写:和here有什么var cur = this;区别?this$(this)

4

4 回答 4

5
$(this)

将返回的 DOM 元素转换this为 jQuery 对象,您可以从中继续使用 jQuery。

于 2013-06-19T02:47:42.517 回答
2

this是对调用当前函数的成员的引用

例如

$(document).ready(function(){
    $("#test").click(function(){

var jQuerizedElement = $( this ); // instead of calling it by its selector you can use this
  });
});

现在你可以用它做更多的事情。

于 2013-06-19T02:48:22.200 回答
2

this返回 DOM 元素,而$(this)返回 jQuery 对象。

this

相当于

$(this).get()
于 2013-06-19T02:48:35.937 回答
0

$是 jQuery 函数的简写。你也可以写:

var cur = jQuery(this);

jQuery 将 DOM 元素和其他对象“包裹”起来,以便为它们提供更多功能。就像您将选择器字符串传递给 jQuery 构造函数一样,您可以传递一个原生 DOM 元素(它this是),它将成为一个 jQuery 对象。

于 2013-06-19T02:48:43.577 回答