我一直在使用一些 jQuery 功能。
$
任何人都可以给我一些想法和使用之间的区别$$
吗?
$
并且$$
可以在谷歌 Chrome、Firefox 和 Safari 浏览器上的任何网页(如果不包括 jQuery)上$
返回选择器的第一个元素。
这里,
$ 是document.querySelector
$$ 是document.querySelectorAll
它们是 Google Chrome 和 Firefox 浏览器的原生功能,您也可以在 Safari 中查看$
和$$
定义。
在任何 Google Chrome、Firefox 或 Safari 中打开Google,然后打开开发者工具来检查这些结果……(为什么选择 Google,因为他们不会使用 jQuery 或 Moo 工具)
$('div'); // returns first DIV in DOM
$$('div'); // returns all DIVs in DOM
在 jQuery 文档上没有$$
声明。jQuery 有一个带$
字符的默认选择器。也许这个脚本使用了另一个 javascript 包并且与 jQuery 有一些冲突。在这种情况下,您可以使用jquery.NoConflict
来避免此类问题,并设置另一个 jquery 选择器。
就像是:
var s = jQuery.noConflict();
// something with new jQuery selector
s("div p").hide();
// something with another library using $()
$("content").style.display = 'none';
如果您的代码有类似的东西以避免冲突:var $$ = jquery.noConfict();
,您可以使用 $$ 作为 jquery 选择器:
$$("#element").method();
jQuery
是 jQuery 提供的对象。$
是另一个,它只是jQuery
.
$$
不是由 jQuery 提供的。它由其他库提供,例如 Mootools 或 Prototype.js。
更重要的$$
是,现代浏览器的控制台中也提供了document.querySelectorAll
. 除非它被另一个库覆盖。$
也以相同的方式提供,作为 . 的别名document.querySelector
。
有关更多信息,请参阅此答案。
$ AND $$ 是 mootools 选择器,$ 也是 jquery 选择器。
见 jquery noconflict-mode
Short Anser: $$
在 jQuery 规范中没有定义,此外,单$( )
号符号表示您将括号内的内容封装到 jQuery 对象中。
因此,别名$
是一个缩写词——我使用的是 jQuery 库,而$$
标准 jQuery 库中没有定义双精度。
所有 jQuery 功能都封装在jQuery
对象中,该对象也可以作为$
. 您正在检查的代码可能正在使用使用函数的不同库(例如 Mootools)$$
。
$$ 在 Jquery 中没有意义,但是它在原型框架中使用。
还要检查这不是使用noConflict
.
搜索代码var $$
以查找旧 jquery 版本的可能分配。
var $$ = jquery.noConfict();