jQuery中var.method()和$(var).method()之间的区别

时间:2015-05-27 15:22:25

标签: javascript jquery

以下两个

之间有什么区别
var link = $("a#home");

// These two:
link.text("Go Home");    // 1.
$(link).text("Go Home"); // 2.

2 个答案:

答案 0 :(得分:6)

由于您已经在创建一个分配给变量的jQuery对象,因此无需再次将其包装在$()中。

一个常见的约定是对已经是jQuery对象的变量使用$前缀,这样可以使代码在已存储为jQuery的内容中更具可读性

示例:

var $link = $("a#home");
// we know that $link is jQuery object assuming prefix is only used for jQuery objects

你的例子#2相当于写作:

$( $("a#home") ).text("Go Home");

当以这种形式查看它以将对象再次包裹在$()中时,显然是多余的

答案 1 :(得分:3)

两者都执行相同的任务,但正如评论中所提到的,后者是包装(已经包装的)jQuery引用。然而,jQuery足够聪明,知道这一点并继续正常进行。

根据我自己的经验,我倾向于让jQuery变量保留$前缀。然后,当我在其他变量之间反弹时,它清楚地知道什么是已经包装的东西。 e.g。

var $link = $('#home');
$link.text("Go Home"); 

此外,对于它的价值,如果您通过它的ID(#home)引用元素,则无需引用该标记。