需要一些帮助来理解如何使用一类ul.children遍历所有ul元素并隐藏ul.child下大于8的任何子元素。
我的代码示例如下:
$(function() {
$('ul.children').each(function() {
var $ul = $(this);
if($ul.children().length > 8) {
$ul.hide();
}
});
});
我的HTML代码示例:
<ul class="children>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>hide all other li elements below this point</li>
</ul>
<ul class="children>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>hide all other li elements below this point</li>
</ul>
答案 0 :(得分:5)
$("ul.children").find("li:gt(7)").hide();
DEMO: http://jsfiddle.net/7TtKD/
@Vitaliy Petrychuk在评论中建议的其他解决方案:
$(".children > li:nth-child(n+9)").hide();
答案 1 :(得分:2)
使用index()和toggle():
$(function() {
$('ul.children li').each(function(i,ele) {
$(ele).toggle($(ele).index() > 7);
});
});
答案 2 :(得分:0)
您可以使用gt()过滤索引大于8的元素。
<强> Live demo 强>
$(function () {
$('ul.children').each(function () {
$('li:gt(8)', this).hide();
});
});
答案 3 :(得分:0)
您只需使用filter()
方法:
$('ul.children li').filter(function(i){return i>7}).hide();