Ich bin nicht sicher, ob dies möglich ist ... Wenn Sie f.ex.

<div id="parent">
    <div id="child1"></div>
    <div id="child2"></div>
    <div id="child3"></div>
    <div id="child4"></div>
    <div id="child5"></div>
    <div id="child6"></div>
</div>

Wie könnten Sie mit jquery oder javascript (oder irgendetwas anderem) nur die ersten beiden zeigen?

0
eight 5 Aug. 2015 im 21:01

5 Antworten

Beste Antwort

Sie können :gt() jQuery-Selektor verwenden.

$("#parent>div:gt(1)").hide()

Wenn Sie inkrementell anzeigen möchten, ist es besser, zuerst alles auszublenden und dann :lt() zu verwenden jQuery-Selektor zum Anzeigen.

$("#parent>div").hide();

var n = 2;
$("#parent>div:lt(" + n + ")").show();

el.click(function () {
    n += 5;
    $("#parent>div:lt(" + n + ")").show();
});
2
Alex Netkachov 5 Aug. 2015 im 18:20

Ein einfacher iterativer Ansatz:

$( document ).ready(function() {
    var i = 0;
    var somevalue = 3;
    $("#parent").children("div").each(
        function () {
            if(i > somevalue) $(this).hide();
            i++;
        });
});
0
CJPN 5 Aug. 2015 im 18:19

Sie können dies mit CSS tun:

#parent div:nth-child(n+3) {
    display: none;
}

https://developer.mozilla.org/en-US/docs/Web/CSS/%3Anth-child

JsFiddle

1
Kevin Boucher 5 Aug. 2015 im 18:20

Hier ist eine Möglichkeit, wie Sie dies in jQuery tun können:

// hide all the children
$("#parent>div").hide();
// unhide the two we care about
$("#child1").show();
$("#child2").show();

Wenn Sie keine bekannten IDs für Ihre Elemente haben, finden Sie hier eine allgemeinere Lösung:

$("#parent>div~div~div").hide();
0
Hayden Schiff 5 Aug. 2015 im 18:04

Sie könnten jQuery-Code folgendermaßen schreiben:

var visibleIndexes = [0, 1]
$("#parent").children().each(function(index) {
 if(visibleIndexes.indexOf(index) === -1){
   $(this).hide();
 } else {
   $(this).show();
 }
}); 

Sie können Indizes, die Sie anzeigen möchten, in der Variablen visibleIndexes oder einer anderen Variablen speichern und an diese Funktion übergeben

0
Mariusz 5 Aug. 2015 im 18:09