2012-07-03 107 views
2

有人可以帮我解释一下jQuery中$$()之间的区别吗?

我知道$()$jQuery()的简写形式,它接受任何DOM元素并将其转换为jQuery对象。

但我不确定什么是$$()有什么不同。请赐教。

感谢堆, 切塔尼亚

+0

$和jQuery都指向window.jQuery对象。 –

+0

检查此[差异之间这两个](http://stackoverflow.com/questions/4609133/what-is-the-difference-between-these-two) –

回答

10

$是一个功能可以被称为 - $()

$()的行为因所提供的参数而异,但以下所有示例将返回返回 a jQuery对象。它可以:

  1. 注册document.ready处理机 - $(myfunc)
  2. 充当选择器 - $('#myid')
  3. 构造元素 - $('<div>')
  4. 返回一个空对象 - $()

$也是对象包含各种utili ty函数$.each属性该对象。在这种情况下,它就像这些函数的命名空间一样。

0

$是一个参考jQuery的命名空间,通过它您可以访问它的静态方法(如ajaxeach等),而$()调用要么注册了功能的DOM就绪回调(如果函数被传递给它)或返回DOM中的元素(如果选择器字符串或元素传递给它)。

顺便说一句,$jQuery的简写,而不是$jQuery

2

$ = jQuery - 这是其用于jQuery的Utilies它包含如$.Ajax()$.each()因此var j = $;将jquery的原型分配到变量j jQuery对象。

$()= jQuery() - 这是一个从根jQuery对象调用的函数所使用转换DOM元素jQuery的对象或使用选择

+0

所以,我可以认为$为jQuery别名因此$()是jQuery函数? –

1

得到的jQuery对象如果创建一个功能:

功能my_function(){ alert('my_function'); return(33) }

my_function是一个包含函数的变量。 my_function()是函数调用的结果。

您可以使用函数调用my_function()来执行函数中的指令和/或将返回的结果存入变量var my_var = my_function();

你会使用该函数的变量名,以便把它传递给另一个函数作为参数如$('a').click(my_function);

由于在JavaScript变量可以是包括标量(文字),阵列的任何种,对象和功能。

现在采取这一想法,并建立它:

$仅仅是一个变量名,就像jQuery仅仅是一个变量名。

由于恰巧这个变量包含的功能,这意味着$()jQuery()执行什么都说明目前在函数体$

1

希望这有助于和上添加到其他职位:)

  • $ =是一个有效的javascript对象/标识符。

  • $() =调用$()会创建一个空的jQuery对象。

jQuery的() - 其也可以写成$() - 检索通过DOM用于所提供的选择器匹配的任何元件,并创建一个新的jQuery对象,引用这些元素:

官方文档Please read docs here (click me)我强烈建议您阅读本文档。

你的问题是2个sperate问题混请参阅以下内容:

+0

这里我们再去.... ;-)请1.修剪那些引号以仅包含_relevant_文本2.提供新的有用内容,而不仅仅是其他答案的链接。这些链接可能是_comments_,不是答案... – Alnitak

+0

@Alnitak任何建议,以改善请! :-)有了你的经验,我很荣幸,如果你能成为导师,完全没有开玩笑,我不会给你打电话,这次我不会为你抱歉:) ** a **我将删除空格,** b **任何额外的东西某种? –

+0

哦,并使用blockquote'>'字符,而不是代码缩进! ;-) – Alnitak

0

在Javascript中,一切数据,这包括功能。作为一个人为的例子:

function test() { 
    console.log("test"); 
} 

对于此示例,test()是函数的调用。只需用test就像使用一个变量,它允许你做这样的事情:

var t = test; 
t(); 

然后使t具有相同的数据/功能test

这就允许你做的东西像一个封闭:

function closure() { 
    var i = 0; 
    function inner() { 
    i++; 
    console.log(i); 
    } 

    return inner; 
} 

由于函数仅仅是一些数据,我们可以返回,然后调用它。所以你会写如下:

var t = closure(); 
t(); // prints '1' 
t(); // prints '2' 

除了其他的好处,这样做可以让你的名字空间少一点混乱。

直接回答你的问题,$只是为jQuery的别名这是做制作:

function jQuery() { /* Lots of code */ } 
$ = jQuery;