2011-11-07 18 views
1

現在、特定のアンカータグに特定のテキストが含まれているかどうかを確認する必要があります。もしそうなら、別の要素のテキストを変更する必要があります。例として、私は以下のコードを持っています。しかし、アンカータグに含まれているものが何であっても、常に「yup!」と警告します。jQueryのIf-thenステートメント

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

私は間違っていますか?私は別のセレクターメソッドを使用する必要がありますか?

答えて

4

この試し:常にセレクタは、任意の要素かに一致するかどうかのオブジェクトを返す

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

'length!= 0'? Meh。これはJavaScriptです。真実を使用してください! –

+0

@MattBallは、OP命令と同じif文を保持したかっただけです。 – Neal

+0

ありがとうございます! – captainrad

5

jQueryオブジェクトのサイズを確認する必要があります。 jQueryは、一致したすべての要素からなるオブジェクトを返します。 $("a:contains('Level 2 (Admin Only)')")常に真であるためである

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

jQueryの方法。オブジェクトは常に真実です。

あなたは1つがなかった場合の要素がマッチした場合truthy、およびfalsyされる、代わりに.length属性を使用する必要があります。

if ($("a:contains('Level 2 (Admin Only)')").length) { 
    alert("yup!"); 
}else{ 
    alert("nope!"); 
} 
関連する問題