jQuery中$和$()之间的区别

时间:2012-07-03 11:17:17

标签: jquery

有人可以努力向我解释jquery中$$()之间的区别吗?

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

但我不确定的是$是什么,与$()的不同之处。请赐教。

谢谢堆, Chaitanya

6 个答案:

答案 0 :(得分:18)

$函数,可以调用 - $()

$()的行为会根据提供的参数而有很大差异,但下面的所有示例都将返回 jQuery个对象。它可以:

  1. 注册document.ready处理程序 - $(myfunc)
  2. 充当选择器 - $('#myid')
  3. 构建元素 - $('<div>')
  4. 返回一个空对象 - $()
  5. $也是一个对象,它包含各种实用程序函数$.each等,作为该对象的属性。在这种情况下,它就像这些函数的名称空间一样。

答案 1 :(得分:5)

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

$()= jQuery() - 这是一个从根jQuery对象调用的函数,用于将DOM元素转换为jQuery对象或使用选择器获取jQuery对象

答案 2 :(得分:3)

希望这会有所帮助并添加到其他帖子:)

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

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

jQuery() - 也可以写成$() - 在DOM中搜索与提供的选择器匹配的任何元素,并创建一个引用这些元素的新jQuery对象:

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

您的问题是两个问题的混合,请参阅下文:

答案 3 :(得分:2)

如果我创建一个函数:

function my_function(){        警报( '创建my_function');        返回(33)    }

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

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

您可以使用函数的变量名称将其作为参数传递给另一个函数,例如$('a').click(my_function);

因为JavaScript中的变量可以是包含标量(文字值),数组,对象和函数的任何类型。

现在接受这个想法并以此为基础:

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

正如所发生的那样,此变量包含一个函数,这意味着$()jQuery()执行函数体$中存在的指令。< / p>

答案 4 :(得分:0)

$是对jQuery名称空间的引用,通过它可以访问其静态方法(例如ajaxeach等),而$()调用一个函数要么注册一个DOM-ready回调(如果函数传递给它),要么返回DOM中的元素(如果选择器字符串或元素传递给它)。

顺便提一下,$jQuery的缩写,而不是$jQuery

答案 5 :(得分: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;