0

わかりました、私はこれに対する答えを見つけることができません....そして助けを望んでいます....

要素の50%を非表示にするか、要素がXの子を超える場合は非表示にします。

<ul>
  <li>
    <div></div>
    <div></div>
    <div></div>
   </li>
<ul>

このリストに3つ以上のdivがある場合は、それらを非表示にします。

4

3 に答える 3

1

プログラムで子を取得し、コードで操作する子を決定できます。

function hideChildrenAbove(n) {
    var items = $("#list li").children();
    for (i = n; i < items.length; i++) {
        items.eq(i).hide();
    }
}


hideChildrenAbove(3);​

実例: http: //jsfiddle.net/jfriend00/SmVfA/


または、セレクターを使用してセレクター文字列を動的に作成し、セレクター:gt(n)に作業を任せることができます。

function hideChildrenAbove(n) {
    $("#list li div:gt(" + (n - 1) + ")").hide();
}

hideChildrenAbove(3);​

実例: http: //jsfiddle.net/jfriend00/pAdqn/


子をクリックすると、3を超える子が切り替わる例を次に示します。

function toggleChildrenAbove(parent, n) {
    var items = $(parent).children();
    for (i = n; i < items.length; i++) {
        items.eq(i).toggle();
    }
}


$("#list li").click(function() {
    toggleChildrenAbove(this, 3);
});

実例: http: //jsfiddle.net/jfriend00/9nQPL/

于 2012-10-19T15:00:24.113 に答える
0

css:

ul li div{
   display:none;
}

JavaScript:

$('ul li div:lt(3)').show();

これは、「未満」のJQueryセレクターを使用します。これを行うにはおそらくもっとクリーンな方法がありますが、最初の3 divのみを表示したいことがわかっている場合は、これでうまくいくはずです。

http://api.jquery.com/lt-selector/

于 2012-10-19T14:58:00.587 に答える
0

まず、要素を数える必要があります。この場合はそうなります。

var elementCount = $("li").children("div").length;

そして、あなたは隠します

$("li").children("div").css("display", "none");

タグにIDを入れることができれば素晴らしいと思います

于 2012-10-19T14:58:48.873 に答える