是jquery $(这个)。与$相同?

时间:2014-03-18 15:58:21

标签: jquery

我想知道jQuery的$。我知道它指的是jQuery对象,但今天我发现了一些不同的东西:$parent 在我正在处理的代码中,它是$(this).parent的替代品: 例如:var $parent = $(this).parent();

所以我的问题是,为什么$parent而不是parent?那是唯一的选择器吗?怎么用这种方式?我并不是在谈论像$.ajax$.post这样的虚线函数。

申请帮助

4 个答案:

答案 0 :(得分:6)

这是一个非常典型的约定,开发人员将使用$为变量名前缀,以表明它是一个jQuery对象,并且可以访问所有典型的jQuery方法。它不是选择器。


在您的示例中,您有:var $parent = $(this).parent();。这是对DOM对象的引用,一旦保存了它,就可以多次使用它:

你可以这样做:

$(this).parent().css('color', 'green');
$(this).parent().css('border', '1px solid pink');
$(this).parent().css('background', 'purple');

在此示例中,jQuery将选择$(this)对象,然后选择其父

你也可以这样做:

var $parent = $(this).parent();
$parent.css('color', 'green');
$parent.css('border', '1px solid pink');
$parent.css('background', 'purple');

您已保存对父级的引用,并使jQuery只查找一次。
* 小旁注:css方法可以做得更好,我这样做是为了演示目的*

答案 1 :(得分:4)

$parent是变量名。它与jQuery库无关。

许多开发人员使用变量的$前缀将它们标识为jQuery集合。

虚线函数(即$.post$.each)只是表示它们是jQuery库的一部分(例如,我不得不添加这不是jQuery的编写方式! ):

var $ = {
    post: function() {  },
    each: function() {  }
}

在上面的示例中,我们现在可以分别以$.post()$.each()访问这两个函数。

当您使用$(this)时,您将获取当前的HTML对象,并生成一个jQuery对象,以便您可以使用jQuery为表带来的添加函数。例如:

this.style.color = '#000';

与做类似的事情完全相同:

$(this).css('color', '#000');

答案 2 :(得分:1)

变量之前的

$只是一个约定。很多人用它来描述一个jQuery对象的变量。它实际上并没有任何特殊的东西。如果你愿意,你可以用你的所有javascript变量作为前缀(不确定为什么你会这样做,但它会有效)。

它类似于许多开发人员用来表示变量/方法应该是私有的(_privateVar)。

答案 3 :(得分:1)

$parent只是一个变量名称,如果需要,您也可以使用parent

$(this)只是jQuery中包含的this的本地副本,以便使用jQuery方法。