0

ul.childrenのクラスですべてのul要素を反復処理し、8より大きいul.childの下の子要素を非表示にする方法を理解するために少し助けが必要です。

以下の私のコードの例:

$(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>
4

4 に答える 4

5
$("ul.children").find("li:gt(7)").hide();

デモ:http: //jsfiddle.net/7TtKD/


または、コメントで@Vitaliy Petrychukによって提案された別の解決策:

$(".children > li:nth-child(n+9)").hide();
于 2013-01-20T13:42:40.483 に答える
2

index()とtoggle()を使用します:

$(function() {
    $('ul.children li').each(function(i,ele) {
        $(ele).toggle($(ele).index() > 7);
    });
});
于 2013-01-20T13:42:32.737 に答える
0

gt()を使用して、インデックスが8より大きい要素をフィルタリングできます。

ライブデモ

$(function () {
    $('ul.children').each(function () {        
        $('li:gt(8)', this).hide();        
    });
});
于 2013-01-20T13:42:24.943 に答える
0

You could simply use filter() method:

http://jsfiddle.net/HZ3LE/

$('ul.children li').filter(function(i){return i>7}).hide();
于 2013-01-20T13:52:28.087 に答える