当我尝试在$("#div_id")
中使用$(document).ready
时,它返回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;
});
<input type="text" id="test" name="test" value="123" />
当我在控制台中运行以下代码时,我得到了这些结果:
$("#test").val()
TypeError: Cannot call method 'val' of null
jQuery("#test").val()
"123"
由于
答案 0 :(得分:17)
见jQuery.noConflict()。您网页上的其他JavaScript库是否可以使用$
变量?
$
只是一个变量,用于别名jQuery
并且是变量,可以为其分配任何内容。
答案 1 :(得分:9)
$
和jQuery
两者都相同,但$
只是jQuery
的别名,您可以使用jQuery.noConflict
模式更改或删除该别名。
答案 2 :(得分:6)
$也用在Prototype.js中,这是一个像jQuery这样的javascript框架。 可能是您的项目还包含对此框架的引用。
有关原型美元如何运作的更多信息,请转到here。
您可以将其与noConflict语句一起使用,如其他答案中所述。我们在我们的一个项目中执行此操作,该项目使用遗留原型代码的$(元素)和新jQuery代码的jQuery(元素)。
答案 3 :(得分:3)
看起来有些东西花了$, 要将jQuery重新分配给$,请尝试:
var $ = jQuery;
答案 4 :(得分:2)
也许您有另一个使用$?
的库答案 5 :(得分:1)
jQuery
和$
是相同的 - 请参阅jQuery源代码:
window.jQuery = window.$ = jQuery;
也许您使用另一个使用变量$的库,然后您必须解决命名冲突。
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>
或者您可以使用以下代码段之一(在其正文中不会发生$冲突):
// Method 1
jQuery(document).ready(function($){
/* some code that uses jQuery $ */
});
// Method 2
(function($) {
/* some code that uses jQuery $ */
})(jQuery);