0

想知道是否有人可以帮助我解决这个问题,我有一个清单;基本上我希望jQuery检查每个带有“bullet-btn”类的div中是否有一个子元素有一个类“icon-thumbs-up”,如果是这样的话,在同一个div中找到另一个带有“badge”类的元素并改变它的颜色.

基本上我拥有脚本的方式不是过滤所有列表,而是选择所有带有“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 回答