$和jQuery有什么区别

当我尝试在$(document).ready使用$("#div_id") ,它返回NULL,但是当我使用jQuery("#div_id")它返回实际的对象!

为什么会这样?

更新:我尝试了noConflict方法而没有获得任何提示。

 jQuery.noConflict() function (a,b){return new c.fn.init(a,b)} $.noConflict(); TypeError: Object function () { return document.getElementById.apply(document, arguments) } has no method 'noConflict' 

更新2:

 $(document).ready(function() { debugger; });  

当我在控制台中运行以下代码时,我得到了这些结果:

 $("#test").val() TypeError: Cannot call method 'val' of null jQuery("#test").val() "123" 

谢谢

请参阅jQuery.noConflict() 。 您网页上的其他JavaScript库是否可以使用$ variable?

$只是一个变量,用于别名jQuery并作为变量,任何东西都可以分配给它。

$jQuery都是相同的,除了$只是jQuery的别名,您可以使用jQuery.noConflict模式更改或删除jQuery.noConflict

$也用在Prototype.js中 ,这是一个像jQuery这样的javascript框架。 可能是您的项目还包含对此框架的引用。

有关美元原型如何运作的更多信息,请转到此处 。

您可以将这两个与noConflict语句一起使用,如其他答案中所述。 我们在我们的一个项目中执行此操作,该项目使用遗留原型代码的$(元素)和新jQuery代码的jQuery(元素)。

看起来有些东西花了$,将jQuery重新分配给$,试着去:

 var $ = jQuery; 

也许你有另一个使用$的库?

jQuery$是一样的 – 请参阅jQuery源代码:

 window.jQuery = window.$ = jQuery; 

也许您使用另一个使用变量$的库,然后您必须解决命名冲突。

  

或者您可以使用以下代码段之一(在它的正文中不会有$冲突):

 // Method 1 jQuery(document).ready(function($){ /* some code that uses jQuery $ */ }); // Method 2 (function($) { /* some code that uses jQuery $ */ })(jQuery);