Rimuovere solo il primo elemento da una selezione di jquery

<div class="box"></div>
<div class="box"></div> <!-- Hide -->
<div class="box"></div> <!-- Hide -->
<div class="box"></div> <!-- Hide -->

Ho bisogno di nascondere tutto questo div, ma non la prima div.

Avrei potuto fare qualcosa di simile a questo:

jQuery('.box').hide();
jQuery('.box').first().show();

C’è un modo per rimuovere il primo .box dalla matrice prima di .hide() em?

InformationsquelleAutor dynamic | 2012-02-02

 

5 Replies
  1. 35
    jQuery('.box').slice(1).hide()
    • +1, modo migliore per andare (e slice è un sotto-utilizzati caratteristica).
    • +1 per il semplice soluzione. Attenzione: “c’È un modo per rimuovere il primo…”, se si desidera rimuovere il primo è necessario utilizzare .slice(0). 🙂
    • per rimuovere il primo elemento da jquery set che è necessario utilizzare slice(1) non slice(0), la fetta metodo utilizza un indice a base zero, ma la nuova sezione è tagliato il prima indice. Così slice(1) fette set prima, l’elemento con indice 1 (vale a dire prima del 2 ° elemento) in effetti la rimozione del primo elemento. slice(0) tagli prima che il primo elemento, in modo restituisce l’intero set originale.
  2. 6

    provare

    jQuery('.box').not(':first').hide();

    confronto:

    @T. J. Crowder è proprio il codice che ho suggerito non l’extra di analisi che possono essere evitati .slice come suggerito da @zch

    QUI è il profilo del mio codice (0,8 ms) e QUI è il profilo di @zch codice (0.53 ms) vedere la differenza

    • Io sono in dubbio se accettare la tua risposta o zch risposta con slice(1)
    • Beh, io credo che questo sia il più leggibile il codice, accetto questo.
    • Il rovescio della medaglia è l’analisi e l’applicazione di selettore quando non c’è davvero alcun bisogno di un grosso martello. Ma se non sei in un loop stretto, facendo questo, migliaia di volte, non è importante. 🙂
    • Non ho alcun loop, ho solo bisogno di esso eseguite una sola volta, in modo accettato questo

Lascia un commento