2012-06-04 50 views
0

我只是在學習如何正確使用螢火蟲。我看了一個howto,作者只是輸入$('p');在控制檯中,它顯示所有的p標籤。在我的情況下,即使網站上有很多p標籤(我的本地Drupal 7網站),它總是顯示NULL。還有我試過的所有其他標籤。我必須把另一個$放在前面,這有點作用?!我錯誤地發現另一種方式不起作用?在螢火蟲jquery拋出總是NULL

+5

可能是您的網站不包含jQuery庫。 – thecodeparadox

+0

聽起來就像你已經包含了MooTools,它使用'$(id)'來選擇一個ID和'$$(選擇器)'來選擇一個選擇器(比如''p「')。 –

+0

我假設每個Drupal 7網站都有jquery,但jQuerify按鈕告訴我「此頁面已經使用jQuery v1.4.4」。我沒有MooTools或類似的東西,只有Firefox 12.0與Firebug和Firequery。 –

回答

1

如果您的網站已經包含jQuery庫,任何jQuery過程都將在瀏覽器中執行console,否則您將無法獲得任何console

這是不可能的jQuery得到NULL,因爲如果沒有元素存在,它將返回[]。或者,您可能會獲得undefined,但NULL永遠不會。

0

試試這個:

(function($) { 
    $('p'); 
})(jQuery); 
+0

>>>(function($){$('p');})(jQuery); undefined –

+0

你是我必須把它包裝到這個在螢火蟲控制檯,但仍然給我undefined回... –

+0

嘗試'(函數($){返回$('p');})(jQuery);'相反 –

2

,因爲它沒有返回或打印任何東西前面的例子沒有做任何事情。 試試這個:

(function($) { 
    console.log('this works'); 
    return $('p'); 
})(jQuery); 
+0

確實有效! :)所以我總是要包裝一切? –

+0

是的,這是我們必須爲javascript插件兼容性付出的代價:P –

0

嘗試在Firebug控制檯發出以下命令:

jQuery.toSource() 
$.toSource() 

如果您的jQuery包括在頁面上,他們都應該返回相同的非空值,即,一大塊源代碼作爲一個字符串。

如果你沒有JQuery的包含在頁,那麼它的棘手:$在Firebug的控制檯的Firebug command line API 內部功能,這是document.getElementById()一個簡單的快捷方式是不是強大,因爲JQuery的$和他們不以同樣的方式工作。然後,$('p')在HTML源代碼中查找包含id="p"的元素。沒有任何,所以你得到空。

$$是Firebug命令行API的另一個功能,它相反作爲CSS選擇器。然後,$$('p')爲您提供一組來自HTML源的所有<p>元素。