如何在jQuery中选择一系列元素

时间:2008-10-09 04:53:09

标签: javascript jquery

<div id="myDiv">
     <a>...</a>
     <a>...</a>
     <a>...</a>
     <a>...</a>
     <a>...</a>
     <a>...</a>
</div>

如果你想在上面的例子中选择第2,第3和第4 a个标签,你会怎么做?我唯一能想到的是:

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

但这看起来并不高效或漂亮。我猜您也可以选择所有a,然后对它们运行.each,但如果a更多,则效率会非常低。

3 个答案:

答案 0 :(得分:108)

jQuery slice()函数获取第一个和最后一个所需元素的索引,选择匹配元素的子集。注意它不包括最后一个元素本身。

在您的特定情况下,您应该使用

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

答案 1 :(得分:9)

使用.slice()功能完全符合我的需要。

答案 2 :(得分:3)

你应该能够通过提取数组的切片来做到这一点。这是行

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

你感兴趣的是。它会影响第2,第3和第4个元素。

<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>