$和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);