2010-03-26 42 views
0

我想使用jQuery基本上通過jQuery包裝了一堆CSS修改,但在IDsClasses不存在的頁面上我得到錯誤?像jQuery查找元素別無所求?

jQuery(".class").css(random_stuff)不是一個函數

任何想法我可以做要麼找到的元素和什麼也不做?每

+0

看到這個問題http://stackoverflow.com/questions/31044/is-there-an-exists-function-for-jquery – Catfish 2010-03-26 19:21:46

回答

5

在這種情況下,它看起來像jQuery庫不正確包括在內。

如果jQuery找不到與您的選擇器匹配的東西,則不會發生任何事情,因爲它沒有找到任何元素來執行操作,這是默認行爲。

+0

這是一個好點,如果返回值爲空,jQuery不會拋出,它只是沒有做任何事情。 – technophile 2010-03-26 19:13:42

+0

嘿謝謝 - 但如果我想嘗試和「發現,如果無法找到無所事事」我該怎麼做? – Andrew 2010-03-26 19:17:55

+0

@Andrew默認的鏈接是這樣的:'jQuery(「.class」).css(random_stuff)'沒有別的......你的錯誤是沒有正確包含在頁面中的jQuery庫。試試'alert(window.jQuery);' – 2010-03-26 19:19:38

0
if(jQuery(".class").length) 
{ 
    jQuery(".class").css(random_stuff); 
} 

Jquery Faq

您可以使用您的 選擇返回 的jQuery集合的length屬性:

+1

雖然這是準確的,但這是一個完全多餘的檢查:) – 2010-03-26 19:17:48

+0

雖然它是正確的0是虛假的,我認爲它仍然值得把額外的'> 0'爲可讀性:) – 2010-03-26 19:23:34

0

您可以檢查返回值的length屬性:

var myElement = $('.class'); 
if (myElement.length > 0) 
    myElement.css(random_stuff); 
+0

很酷,所以如果我想「找到,如果不能找到無所事事」,我會如何做到這一點:)? – Andrew 2010-03-26 19:18:25

1

聽起來像是你缺少在這些網頁上引用jQuery的。 jQuery只對匹配的選擇執行一個動作......如果沒有匹配,它不會拋出錯誤。