jQuery语法 - 何时使用$(美元)vs jQuery

sha*_*esh 17 syntax jquery

这两者有什么区别?

$('#SPANID').html("Some Text");

jQuery('#SPANID').html("Some Text");
Run Code Online (Sandbox Code Playgroud)

这是jQuery的原型吗?

小智 28

他们都做同样的事情.大多数库使用$作为访问库中函数的较短方式.

jQuery有很多方法可以访问它的库:

window.jQuery('#SPANID').html("Some Text");

window.$('#SPANID').html("Some Text");

jQuery('#SPANID').html("Some Text");

$('#SPANID').html("Some Text");
Run Code Online (Sandbox Code Playgroud)

如果您使用多个库,则可以使用jQuery或window.jQuery代替$.

JQuery有一个名为jQuery.noConflict()的函数; 它放弃了jQuery对$变量的控制,使得$不能与jQuery一起工作.

这对于使用多个使用$的库是有好处的.

所以,当您使用jQuery,你会做jQuery('#message').addClassName('read');$('#message').addClassName('read');使用原型时.

(这下一点有点偏离主题,但如果你想使用多个库的$,将有所帮助)

虽然有一种方法可以同时在不同的库上使用$,但使用匿名函数.像这样:

(function($){


})(jQuery);


(function($){


})(Prototype);
Run Code Online (Sandbox Code Playgroud)

每个函数都传递库对象,所以jQuery和Prototype作为变量$允许使用它与许多库一起使用.如果您在每个库中包含每个库的代码,它将起作用.

例如:

(function($){
    $(document).ready(function(){

         $('#message').addClass('read');

    });

})(jQuery);


(function($){
     document.observe("dom:loaded", function() {

         $('message').addClassName('read');
         //Or
         $$('#message').addClassName('read');

     });

})(Prototype);
Run Code Online (Sandbox Code Playgroud)


Pat*_*cia 16

如果你使用的是一个以上的javascript库,那么如果你只使用$就会有冲突.使用jQuery将避免这些.

  • 这是正确的答案.此外,jQuery有一个noConflict()方法,可以调用它来放弃jQuery对$变量的控制,允许它在沙盒中与其他框架一起很好地运行.http://api.jquery.com/jQuery.noConflict/ (5认同)
  • 如果您还使用.noConflict,这只是正确的答案. (3认同)

End*_*ssa 6

这是同一件事的别名.如果要在与使用该$符号的其他库相同的页面上使用jQuery ,可以将jQuery与.noConflict()选项一起使用.这将允许您$用于其他库和jQueryjQuery库.