在jQuery中的if-then语句

时间:2011-11-07 18:55:03

标签: jquery if-statement css-selectors conditional-statements

目前,我需要检查特定的锚标记,看它是否包含某些文本。如果确实如此,我需要它来改变另一个元素的文本。举个例子,我有以下代码。但是,无论我把它放在一个锚标签中,它总是警告“是的!”。

if ($("a:contains('Level 2 (Admin Only)')")) {
    alert("yup!");
} 
else {
    alert("nope!");
}

我做错了什么?我应该使用不同的选择器方法吗?

3 个答案:

答案 0 :(得分:5)

您必须检查jQuery对象的大小。 jQuery返回一个对象,由所有匹配的元素组成。

 // If .length == zero, it evaluates to false in an if condition
if ($("a:contains('Level 2 (Admin Only)')").length) {

答案 1 :(得分:4)

这是因为$("a:contains('Level 2 (Admin Only)')") 总是为真。

试试这个:

if($("a:contains('Level 2 (Admin Only)')").length) {
   alert("yup!");
}else{
   alert("nope!");
}

答案 2 :(得分:2)

jQuery方法总是返回一个对象,无论选择器是否匹配任何元素;和对象总是真实。

您应该使用.length属性,如果元素匹配则为 truthy ,如果不匹配则为 falsy

if ($("a:contains('Level 2 (Admin Only)')").length) {
   alert("yup!");
}else{
   alert("nope!");
}