是jquery $(this)。 与$相同吗?
这个问题在这里已经有了答案:
这是一个非常典型的约定,开发人员会在变量名前添加$
以表明它是一个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方法可以做得更好,我这样做是为了演示目的*
$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');
变量之前的$
就是一个约定。 很多人用它来描述一个jQuery对象的变量。 它实际上并没有做任何特别的事情。 如果你愿意,你可以用它为你的所有javascript变量加上前缀(不知道你为什么会这样做,但它是有效的)。
这与许多开发者用来表示变量/方法应该是私有的( _privateVar
)相似。