jQuery中符号$的含义是什么?

132

$符号在jQuery中代表什么?


你可以将标题稍微描述一下,而不仅仅像几个分类标签。 - Michael Paulukonis
22
这是一个对于像我这样的jQuery新手来说非常好的问题。我通过从互联网上剪切和粘贴一些jQuery页面来拼凑它,这也是我对自己所做的事情产生的第一个问题。 - Mark Harrison
11个回答

144

jQuery对象 :)

来自jQuery文档:

默认情况下,jQuery使用"$"作为"jQuery"的简称

因此,使用$("#id")或jQuery("#id")是相同的。


嗨,@Andrea,我不知道我是否提出了正确的问题,因为我是jQuery的新手。我们可以用其他符号替换那个$吗?如果可能的话,怎么做? - Hulk
@ Hulk,你可以使用 noConflict() 来替换它。 - super cool

50

奇怪但真实,你可以在JavaScript中使用"$"作为函数名。它是jQuery()的缩写,如果需要可以使用它。如果另一个库已经使用了$,则可以在兼容模式下运行jQuery。只需使用jQuery.noConflict()即可。在JS中,$通常用作选择器函数。

然而,在jQuery中,$函数的功能远不止选择元素。

  1. 您可以将选择器传递给它,以从DOM中获取匹配的元素集合。
  2. 您可以传递一个函数,在文档准备就绪时运行该函数(类似于body.onload()但更好)。
  3. 您可以传递一个HTML字符串,将其转换为DOM元素,然后将其注入到文档中。
  4. 您可以传递要包装为jQuery对象的DOM元素或元素。

这是文档:https://api.jquery.com/jQuery/


8
我知道,这真的应该是这个问题的正确答案...我不敢相信那些玩笑式的回答获得了所有的赞。 - reedvoid
1
同意reedvoid的评论。这反映了Javascript编程现状。话虽如此,现在回答问题的更精确的链接是http://api.jquery.com/jQuery/。 - Sunny
如果 $ 是一个函数,那么我们如何在其上调用 noConflict() 方法呢?这只有在 $ 是一个对象而不是函数的情况下才可能实现。 - darKnight
1
@dk49 在JavaScript中,函数也可以拥有属性。试试这个例子:function Person() {}; Person.city = 'Missoula'; console.log(Person.city) - Lance Fisher
更多证据请尝试 typeof $,它将输出 "Function"。 ;) - Lance Fisher

34

它是一种语法糖,不仅限于jQuery,其他库也使用它。你可以在这里查找有关JavaScript中美元符号用法的详细文章。


5
好的,我喜欢“语法糖”这个词汇。感谢您让我知道它 :) - Ravi Dhoriya ツ
4
这算是一个回答吗?从这里我了解到jQuery中的“$”符号代表“语法糖”。文章详细讨论了如何和为什么,但没有简明扼要地回答。@andrea给出了三个单词的回答。 - lorenzog
我认为OP想知道为什么选择$符号来代表库,而不是它的实际含义,这是显而易见且有文献记录的。 - Elzo Valugi
那个链接已经失效了,你说的那个详细解释的链接。 - user734028
@user734028,我已将链接更改为缓存链接,请现在检查。 - Elzo Valugi

30

如其他答案所述,$是指向jQuery函数的快捷方式。

有些JavaScript库也使用$(例如:原型)。为避免与这些其它库发生冲突,jQuery提供了jQuery.noConflict()函数。调用此函数将控制$变量的权利交回给最先实现它的另一个库。这样做以使用jQuery,您不能再使用$('div.someClass'),而应该使用jQuery('div.someClass')。

或者你可以这样做:

jQuery.noConflict();

jQuery.ready(function($) {
   // use $ for jQuery
}

//use $ for the other library

当编写插件避免使用noConflict时,您可以将“jQuery”传递给函数:

function($) {

//use $ writing your plugin

}(jQuery)

9

$只是一个名为jQuery的函数,它是访问jQuery库中所有功能的方式。

你可以在这里找到它:http://docs.jquery.com/%24


7
它是jQuery的缩写。所有jQuery功能的对象所在位置。

5

$符号是语法糖,就像@Elzo所提到的那样。然而,没有人真正回答你的问题。在jQuery中,$符号是window.jQuery的简写,因此您不必每次都输入它。


4

$只是另一个变量。在jQuery中,它引用函数jQuery。


4

使用 $ 符号定义/访问 jQuery


1

看一下jQuery库文件。

//暴露jQuery和$标识符。

if ( typeof noGlobal === strundefined ) {
    window.jQuery = window.$ = jQuery;
}

全局变量 $ 指向 jQuery。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接