为什么$()不起作用但jQuery()有效?

时间:2011-04-01 07:59:59

标签: jquery

我遇到问题$("#register") returns null,但jQuery("#register")正确返回对象。

这可能值千言万语:

Chrome inspector expressing the problem

正如您在Watch表达式中看到的,一切都按预期工作(jQuery === $ returns true) 但在控制台中却没有。并且在代码中它也没有,因为$("#register").validate字符串不起作用。

也许它必须对$script.js事做些什么?

5 个答案:

答案 0 :(得分:8)

您使用的其他一些javascript框架可能会劫持$()函数。您可以查看jQuery.noConflict()以获取有关将jQuery与其他框架一起使用的提示。

答案 1 :(得分:1)

错误编写的jQuery插件可能是导致此问题的原因

答案 2 :(得分:1)

这是因为两个JavaScript文件都声明了函数$

答案 3 :(得分:1)

为了避免任何可能的冲突,在使用jQuery之前,您需要调用jQuery.noConflict();。之后,只要你需要使用它就在基本脚本级别使用“jQuery”对象,虽然在任何这样的方法内部你可以使用$而不是jQuery。

换句话说,你应该写:

jQuery.noConflict();
jQuery.ready(function() {
    // do stuff
    $('#btn').button();
});

请注意,在准备好之内,我可以再次使用$而不必担心其他冲突。

答案 4 :(得分:1)

我很抱歉在5分钟内回复并说代码有效。呃。

这只是网络检查员重写的内容。

$ script.js不会引起冲突。

> jQuery.noConflict()
function (a,b){return new d.fn.init(a,b,g)}
> $
function ()
    {
        return document.getElementById.apply(document, arguments)
    }

这是铬检查员的问题:)