2013-01-18 47 views
5

訪問元素我需要能夠從陣列jQuery的 - 在陣列

HTML

<div id="container"> 
    <ul> 
    <li id="one">--------</li><br /> 
    <li id="two">----------------</li><br /> 
    <li id="three">-------</li><br /> 
    </ul> 
</div> 

JS

我知道我可以訪問個人寬度的這樣獲得元素的寬度

$('#one').width(); 

但在陣列

var $array = $("#container li"); 

我如何通過其索引

$array[2].width(); //which causes error 

http://jsfiddle.net/8zvkn/

回答

11

使用eq訪問元素的具體寬度:

$('#container li').eq(i) 
+2

是與OP oringal嘗試使用問題'$陣列[2]'。是'$ array [2]'是一個不是jQuery對象的DOM元素,所以你不能對它執行'width()'。使用'eq()'你得到一個過濾jQuery對象在該索引的元素。 –

+0

謝謝你 - 作品非常棒!正在讓我有點生氣 – eleven11

7

您可以使用.eq功能如下面,

$array.eq(2).width() 

DEMO:http://jsfiddle.net/8zvkn/2/

$array[2] - 返回DOM元素,但你需要的是jQuery的對象,它具有.width功能。

0

你也可以做這樣的事情用第n個孩子:

$("#container li:nth-child(1)").width(); // first li