2011-11-07 111 views
1

目前,我需要檢查一個特定的錨標記以查看它是否包含某些文本。如果這樣做,那麼我需要它來改變另一個元素的文本。就如一個例子,我有以下代碼。但是,無論我將其放在錨標籤中,它總是會提醒「yup!」。jQuery中的if-then語句

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

我在做什麼錯?我應該使用不同的選擇器方法嗎?

回答

4

這是因爲$("a:contains('Level 2 (Admin Only)')")總是如此。

嘗試這種情況:

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

'length!= 0'?咩。這是JavaScript。使用真實! –

+0

@MattBall只是想讓if語句和OP一樣。 – Neal

+0

謝謝偉大的作品! – captainrad

5

你必須檢查jQuery對象的大小。 jQuery返回一個由所有匹配元素組成的對象。

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

jQuery的方法總是返回一個對象選擇是否匹配任何元素與否;和對象是總是真。

您應該使用.length屬性相反,這將是truthy如果一個元素被匹配,並falsy如果一個人沒有。

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