jQuery中的元素数组

时间:2011-10-01 20:17:25

标签: jquery arrays

标记代码:

<div id="elements">
    <div>
        <a href="#">text</a>
        <a href="#">text</a>
        <a href="#">text</a>
    </div>
    <div>
        <a href="#">text</a>
        <a href="#">text</a>
        <a href="#">text</a>
    </div>
    <div>
        <a href="#">text</a>
        <a href="#">text</a>
    </div>
</div>

请告诉我如何获取div的所有元素的数组,以便稍后可以解决一系列选项?

如:

divs[0]  
links[1] 

6 个答案:

答案 0 :(得分:6)

$('#elements div').eq(0) // first div

$('#elements div a').eq(1) // second anchor in group of divs

如果.eq()没有元素集合,.eq只会将元素单独列出。

答案 1 :(得分:5)

Demo

var divs = $('#elements div');
var links = $('#elements div a');
  1. 如果您需要DOM元素,则可以使用divs[0]links[2]等数组样式访问它们。
  2. 如果您想获取特定的jQuery对象,可以使用divs.eq(0)links.eq(1)访问它们。

答案 2 :(得分:1)

wrapper = document.getElementById('elements');
divs = wrapper.getElementsByTagName('div');
links = [];
for (i = 0; i < divs.length; i++) {
    links[i] = divs[i].getElementsByTagName('a');
}

divs现在将是“elements”div中div的数组。链接现在是一个二维数组,其中第一个索引引用“elements”div中的div,第二个索引引用该div中的“a”标记。

links[2][1]

将引用下面表示的元素:

<div id="elements">
    <div>
        <a href="#">text</a>
        <a href="#">text</a>
        <a href="#">text</a>
    </div>
    <div>
        <a href="#">text</a>
        <a href="#">text</a>
        <a href="#">text</a>
    </div>
    <div>
        <a href="#">text</a>
        <a href="#">text</a>  //this one
    </div>
</div>

答案 3 :(得分:1)

或者,我相信这更符合您的要求:

  

$(“#elements div:eq(0)a:eq(1)”)

答案 4 :(得分:1)

请参阅https://api.jquery.com/toArray/

$( "li" ).toArray()

这在

等情况下效果很好
$( "li" ).toArray().each( function(li) {
  console.log('do something with this list item', li);
})

或者如果你真的想要

$( "li" ).toArray()[0]

答案 5 :(得分:0)

$("#elements a")

$("div a")

or $("a")

jQuery Selectors