【发布时间】:2012-04-06 03:43:15
【问题描述】:
有没有办法通过 jquery 将一个类添加到所有包含 ul 且只有一个列表元素的 div(如 div.filter_7)。使用 jQuery,我需要遍历每个 div.list-container 并计算列表元素。如果列表元素小于 2,则 jquery 应附加一个类。
<div class="filter_group">
<div class="filter-holder filter_1">
<h4>Test</h4>
<div class="list-container">
<ul class="list filter">
<li class="list_id1">list_id1</li>
<li class="list_id2">list_id2</li>
<li class="list_id3">list_id3</li>
<li class="list_id4">list_id4</li>
<li class="list_id5">list_id5</li>
</ul>
</div>
</div>
<div class="filter-holder filter_2">
<h4>Test</h4>
<div class="list-container">
<ul class="list filter">
<li class="list_id11">list_id11</li>
<li class="list_id22">list_id22</li>
<li class="list_id33">list_id33</li>
<li class="list_id44">list_id44</li>
<li class="list_id55">list_id55</li>
</ul>
</div>
</div>
<div class="filter-holder filter_6">
<h4>Test</h4>
<div class="list-container">
<ul class="list filter">
<li class="list_id111">list_id111</li>
<li class="list_id222">list_id222</li>
<li class="list_id555">list_id555</li>
</ul>
</div>
</div>
<div class="filter-holder filter_7">
<h4>Test</h4>
<div class="list-container">
<ul class="list filter">
<li class="list_id1111">list_id1111</li>
<li class="list_id2221">list_id2222</li>
</ul>
</div>
</div>
这是我到目前为止使用 jquery 所做的,但它似乎是错误的:
var total = 0;
$(document).ready(function() {
$('.list-container').each(function(idx, item){
total = $(".list-container>ul").size();
if (6 >= total) {
$('.list-container').parent('div').addClass('noshow');
} else {
alert(total);
}
});
});
【问题讨论】:
-
我们是否可以安全地假设每个
<div>将只包含一个<ul>,或者我们是否需要考虑一个<div>,它有一个<ul>,只有一个元素第二个<ul>有多个元素(如果我们这样做,是否应该隐藏它?)。 -
等等...它是“低于两个”还是“只有一个”列表项。空列表是否也会获得 noshow 类?您的代码与您的问题不完全匹配。
标签: jquery html filter each addclass