Een reeks elementen selecteren in jQuery

Als u in het bovenstaande voorbeeld de 2e, 3e en 4e a-tags wilt selecteren, hoe zou u dat dan doen? Het enige wat ik kan bedenken is:

$("#myDiv a:eq(1), #myDiv a:eq(2), #myDiv a:eq(3)")

Maar dat lijkt niet erg efficiënt of mooi te zijn. Ik denk dat je ook ALLE as kunt selecteren en er dan .eachoverheen kunt uitvoeren, maar dat zou erg inefficiënt kunnen worden als er veel meer as.


Antwoord 1, autoriteit 100%

jQuery slice()functie die indexen neemt van de eerste en de laatste benodigde elementen selecteert een subset van de overeenkomende elementen. Merk op wat het laatste element zelf niet bevat.

In jouw specifieke geval zou je moeten gebruiken

$("#myDiv a").slice(1, 4)

Antwoord 2, autoriteit 8%

Het gebruik van de .slice()-functie doet precies wat ik nodig heb.


Antwoord 3, autoriteit 2%

Je zou dit moeten kunnen doen door een deel van de array op deze manier te extraheren. Het is de lijn

$("div[id='myDiv'] > a").slice(1,4).css("background","yellow");

waar je in geïnteresseerd bent. Het heeft invloed op het 2e, 3e en 4e element.

<html>
    <head>
        <script type="text/javascript" src="jquery-1.2.6.pack.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $("a").click(function(event){
                    $("div[id='myDiv'] > a").slice(1,4).css("background","yellow");
                    event.preventDefault();
                });
            });
        </script>
    </head>
    <body>
        <div id="myDiv">
            <a>1</a>
            <a>2</a>
            <a>3</a>
            <a>4</a>
            <a>5</a>
            <a>6</a>
        </div>
        <hr>
        <a href="" >Click here</a>
        <hr>
    </body>
</html>

Other episodes