2010-03-26 32 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只对匹配的选择执行一个动作......如果没有匹配,它不会抛出错误。