2012-03-15 1 views
2

私はページをチェックしてイメージを持たないdivを見つけ、そのdiv内の要素のクラスを変更しようとしています。ページが動的に生成されているので、各要素を確認する必要があります。コード自体はすべてのdivに影響を及ぼしますが、それぞれの点を確認してから写真にしか影響を与えません。jQueryを使用して各divの要素を確認し、if文を適用します。

HTML:

<div class="container"><img width="695" height="519" src="pic123.jpg" /><div class="arrow"></div><!--arrow--></div><!--container--> 
<div class="container"><div class="arrow"></div><!--arrow--></div><!--container--> 

のjQuery:

$('.container').each(function(){ 
if ($(this).has("img")){ 
$('.arrow').addClass('classone'); 
}; 
}); 

答えて

4

あなたはif文を必要としない:

$(".container:has(img) .arrow").addClass("classone"); 

それとも、このバージョン試すことができます。

$(".container").filter(":has(img)").find(".arrow").addClass("classone"); 
+0

作品を働くだろう!驚くばかり!ありがとうKevin! – brock2621

0

あなただけ

$('.arrow', this).addClass('classone');

または以下のように.hasを使用してみてくださいへ

$('.arrow').addClass('classone');

を変更する場合は、私が理解するものから、それが正常に動作する必要があり、

$('.container').has('img').find('arrow').addClass('classone'); 
0

この必要がありますトリックを行う:

$('.container').each(function(){ 
    if ($("img", this).length > 0){ 
     $('.arrow', this).addClass('classone'); 
    }; 
}); 
1

試してみてください。

$('.container').each(function(){ 
    if ($(this).has("img")){ 
     $('.arrow',this).addClass('classone'); 
    }; 
}); 

$(this).find('.arrow').addClass('classone');

関連する問題