我想知道jQuery的$
。我知道它指的是jQuery对象,但今天我发现了一些不同的东西:$parent
在我正在处理的代码中,它是$(this).parent
的替代品:
例如:var $parent = $(this).parent();
所以我的问题是,为什么$parent
而不是parent
?那是唯一的选择器吗?怎么用这种方式?我并不是在谈论像$.ajax
或$.post
这样的虚线函数。
申请帮助
答案 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方法。