2011-04-01 78 views
6

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

这可能是值得千言万语:

Chrome inspector expressing the problem

正如你可以监视表达式一切正常看到(jQuery === $ returns true) 但在控制台没有。而在代码中它也没有,因为$("#register").validate字符串不起作用。

也许它必须做一些与$script.js的事情?

+0

你使用多个框架? – 2011-04-01 08:01:23

+0

也许你有一些函数'$()' – 2011-04-01 08:02:43

+0

这个问题现在已经解决 - 我认为它的Chrome的Web Inspector的东西,覆盖$ – 2011-04-01 08:10:47

回答

1

对不起,5分钟后回复并说代码有效。呃。

这只是$是Web检查器覆盖的内容。

$ script.js不会导致冲突。

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

这是Chrome检查问题:)

+0

你能解释你如何解决这个问题? – 2017-11-12 20:32:23

+0

@PrAtikLochawala解决什么问题?只有在使用Chrome开发工具时才会遇到问题。它对于$ variable有它自己的含义:[$(selector)docs](https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#queryselector)。如果调用jQuery.noConflict(),则可以将其分配给其他变量,并使用该变量而不是$,这样就不会与chrome开发工具发生冲突。 – 2017-11-13 14:21:10

8

也许你正在使用的其他一些JavaScript框架劫持了$()函数。您可以查看jQuery.noConflict()以获取有关在其他框架中使用jQuery的提示。

1

错误地写成jQuery插件可能是这个问题

1

它发生的原因,因为这两个JavaScript文件声明函数$

1

为了避免任何可能的冲突,之前使用jQuery,你需要调用jQuery.noConflict();。之后,无论何时需要使用基本脚本级别的“jQuery”对象,尽管内部可以使用$,而不是jQuery。

换句话说,你应该写:

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

注意,里面准备好了,我可以再次使用$,而不必担心其他冲突。

相关问题