0

誰かがこれを理解するのを手伝ってくれるかどうか疑問に思っているので、リストを持っています。基本的に、クラス「bullet-btn」を持つすべてのdiv内で子要素にクラス「icon-thumbs-up」があるかどうかをjQueryに確認してもらいたい場合は、クラス「バッジ」を持つ同じdiv内の別の要素を見つけて、その色を変更します.

基本的に、私がスクリプトを持っている方法は、すべてのリストをフィルタリングするのではなく、クラス「icon-thumbs-up」ですべての要素を選択していますか?

これが私のhtmlです

<ul class="content-box">
<li>
    <div class="bullet-btn">
    <h1>Hamburger</h1>
    <span class="counter badge">389</span>
    <span class="icon-thumbs-up"></span>
    </div>
    <div class="bullet-btn">
    <h1>Sirloin</h1>
    <span class="counter badge">389</span>
    <span class="icon-thumbs-down"></span>
    </div>
    <a href="#">View All Trending Topics...</a> 
</li>
<li>
    <div class="bullet-btn">
    <h1>Brett</h1>
    <span class="counter badge">389</span>
    <span class="icon-thumbs-down"></span>
    </div>
    <div class="bullet-btn">
    <h1>Jenny</h1>
    <span class="counter badge">389</span>
    <span class="icon-thumbs-up"></span>
    </div>
    <a href="#">View All Trending Topics...</a> 
</li>
<li>
    <div class="bullet-btn">
    <h1>Lighting</h1>
    <span class="counter badge">389</span>
    <span class="icon-thumbs-up"></span>
    </div>
    <div class="bullet-btn">
    <h1>Music</h1>
    <span class="counter badge">389</span>
    <span class="icon-thumbs-down"></span>
    </div>
    <a href="#">View All Trending Topics...</a> 
</li>
</ul>

ここに私のjQueryがあります

     if ($('div.bullet-btn').children('.icon-thumbs-down').length > 0) {
    $(this).find(".badge").css({'color':'red'});
} else {
    $(this).find(".badge").css({'color':'white'});
}
4

1 に答える 1

4
$('.bullet-btn').each(function() {
    var color = $('.icon-thumbs-down', this).length ? 'red' : 'white';
    $('.badge', this).css('color', color);
});

これがフィドルです:http://jsfiddle.net/PSSWc/

于 2012-08-19T05:16:30.503 に答える