我正在编写一个jquery函数来检查并查看所有兄弟姐妹是否都有某种类型的“out”,如果是,那么就做点什么。我无法弄清楚我哪里出错了。任何帮助将不胜感激!
<ul>
<h3>I'm a title</h3>
<li class="out">Item 1</li>
<li class="">Item 2</li>
<li class="">Item 3</li>
</ul>
<ul>
<h3>I'm a second set of people</h3>
<li class="out">Item 1</li>
<li class="out">Item 2</li>
<li class="out">Item 3</li>
</ul>
$('h3').each(function() {
if( $('h3').nextAll('li').hasClass('out')) {
$('h3').css('background', 'red');
}
});
答案 0 :(得分:2)
尝试
HTML
<ul>
<li><h3>I'm a title</h3></li>
<li class="out">Item 1</li>
<li class="">Item 2</li>
<li class="">Item 3</li>
</ul>
<ul>
<li><h3>I'm a second set of people</h3></li>
<li class="out">Item 1</li>
<li class="out">Item 2</li>
<li class="out">Item 3</li>
</ul>
然后
$('li:has(h3)').each(function() {
if($(this).siblings(':not(.out)').length == 0){
$(this).find('h3').css('background', 'red');
}
});
演示:Fiddle
答案 1 :(得分:1)
您的无效HTML ,因此将其更改为
<强> HTML 强>
<h3>I'm a title</h3>
<ul>
<li class="out">Item 1</li>
<li class="">Item 2</li>
<li class="">Item 3</li>
</ul>
<h3>I'm a second set of people</h3>
<ul>
<li class="out">Item 1</li>
<li class="out">Item 2</li>
<li class="out">Item 3</li>
</ul>
<强>的JavaScript 强>
$('ul').each(function() {
if( $(this).find('li.out').length == $(this).find('li').length) {
$(this).prev('h3').css('background', 'red');
}
});