0

私は次のことを達成したいと思います:

特定の ul 内に 12 以上の li がある場合は、最後のものを "..." に置き換え、12 番目以降に表示されるものを非表示にします。

誰かが私の方法でいくつかのポインターを投げることができますか?

4

4 に答える 4

0

これを試して:

$('#myList > li:eq(11)').nextAll().hide().end().after('<li>...</li>'); 

フィドル

メソッドで提供されるインデックスeq()はゼロベースであり、DOM ツリー内ではなく、jQuery オブジェクト内の要素の位置を参照することに注意してください。したがって、eq(11)ここでは項目 12 を意味します。

于 2013-04-28T19:01:58.343 に答える
0

ここに作業フィドルがあります: http://jsfiddle.net/acturbo/w3yep/7/

サンプル HTML:

<ul id="mylist">
    <li>1 </li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5 last one to see</li>
    <li>6 will be truncated</li>
    <li>7 will be truncated</li>
    <li>8 will be truncated </li>
</ul>  

jquery:

$(document).ready(function () {
   var maxToShow = 5;

    $("#mylist li").each( function(i, e){
        // truncate all li elements after the 5th
        if ( i >= maxToShow){
            // $(e).remove(); // remove it
            $(e).hide(); // or hide it
        }
    });

});
于 2013-04-28T19:02:04.930 に答える