2012-04-03 8 views
10

要素に子があるかどうかを判断するには、if文を使用しています。それは子供がいない場合、私はその要素だけに何かしたいです。ここでif文で 'this'を使用するjQuery

は私が何をしようとしているの前提だ:

if ($("#div a").children().length > 0){ 
    $(this).hide(); 
} 

ので<a>タグに子がない場合は、私がその特定の要素(あるいはまた、子を持たない複数の要素に何かをしたいです)。

ifステートメントのため、thisは定義されていません。

私は何かが完全に欠落している可能性がありますが、これをどうやって達成するかについてはあまりよく分かりません。何かアドバイスが

答えて

9

編集いただければ幸いです。追加DEMOリンク

をあなたは条件をチェックして、フィルタ結果に.hideを呼び出すために.filterを使用することができます。下記を参照してください。

$("#div a").filter(function() { 
    return ($(this).children().length > 0) 
}).hide(); 
+0

パーフェクトを反復処理するために、それぞれを使用することができます。ありがとう! – scferg5

3

単純な解決策は、要素を変数に配置することです。

var elem = $("#div a"); 
if (elem.children().length > 0){ 
    elem.hide(); 
} 
+3

#divに複数の 'a'タグがある場合、本当に答えが出るかどうかはわかりません。 http://jsfiddle.net/skram/bxDNq/5/ –

+0

@SKS、良い点、+1 –

6

あなたは素晴らしい作品、要素

$('input').each(function(){ 
    if ($(this).val()) { 
    $(this).addClass('has-value'); 
    } 
}); 
関連する問題