2013-01-18 26 views
5

muszę być w stanie uzyskać szerokość elementów z tablicyjQuery - elementy dostępowe w tablicy

HTML

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

JS

wiem, może uzyskać dostęp do szerokości jednostki tak

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

Ale w tablicy

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

Jak uzyskać dostęp do konkretnej szerokości elementu o indeksie

np

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

Przykład http://jsfiddle.net/8zvkn/

Odpowiedz

11

Korzystanie eq:

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

Tak problem z OP oringal próba z użyciem '$ tablica [2]'. Czy to '$ array [2]' jest elementem DOM, a nie obiektem jQuery, więc nie możesz na nim wykonać 'width()'. Używając 'eq()' otrzymujesz filtrowany obiekt jQuery dla elementu w tym indeksie. –

+0

Dzięki chłopaki - działa świetnie !!! Prowadził mnie trochę do szału – eleven11

7

Można użyć .eq działają jak poniżej

$array.eq(2).width() 

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

$array[2] - zwraca element DOM, ale to, czego potrzebujesz to obiekt jQuery, który posiada funkcję .width.

0

Można też zrobić coś takiego z użyciem n-dziecko:

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