2011-04-01 65 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(); 
}); 

注意,裏面準備好了,我可以再次使用$,而不必擔心其他衝突。

相關問題