2011-07-08 15 views
13

Zakładając, mam to:Jak uzyskać dostęp do oryginalnego elementu z jQuery wrapper

var wrap = $("#someId"); 

muszę uzyskać dostęp do oryginalnego obiektu, które chciałbym uzyskać przez

var orig = document.getElementById("someId"); 

ale nie chcesz zrobić document.getElementById.

Czy jest coś, czego mogę użyć na wrap, aby go otrzymać? coś w rodzaju:

var orig = wrap.original(); 

Szukałem wysoko i nisko, ale niczego nie znalazłem; albo może nie szukam właściwej rzeczy.

Odpowiedz

22

Funkcja tego jest get. Możesz przekazać indeks do get, aby uzyskać dostęp do elementu w tym indeksie, więc wrap.get(0) otrzymuje pierwszy element (zwróć uwagę, że indeks jest oparty na 0, podobnie jak tablica). Możesz także użyć ujemnego indeksu, więc wrap.get(-2) dostaje ostatni element w zaznaczeniu.

wrap.get(0); // get the first element 
wrap.get(1); // get the second element 
wrap.get(6); // get the seventh element 
wrap.get(-1); // get the last element 
wrap.get(-4); // get the element four from the end 

Można również użyć składni podobnej do tablicowej w celu uzyskania dostępu do elementów, np. wrap[0]. Jednak można do tego celu używać tylko dodatnich indeksów.

wrap[0];  // get the first element 
wrap[1];  // get the second element 
wrap[6];  // get the seventh element 
1

Możesz użyć tylko var orig = wrap[0];, o ile wiem, jeśli jest więcej niż jeden element. Jeśli jest tylko jeden, możesz po prostu użyć wrap bez niego.

-6

Możesz użyć wrap nadal .. Wrap jest taki sam jak "orig" byłby w powyższym! :)

Jeśli naprawdę chcesz:

var orig = wrap; 
+1

Nie, to jest złe. Wybór jQuery nie jest taki sam jak element DOM. Wybór jQuery * zawiera * element DOM, do którego odnosi się pytanie. – lonesomeday

+0

'$ (" # someId ");' nie jest tym samym co 'document.getElementById (" someId ");' – Niklas

+0

Jest to niepoprawne, jak wyjaśniono powyżej. -1 –

1

Możesz użyć get(), aby pobrać element HTML.

var orig = wrap.get(0); 

Jednak jeśli wrap składa się z wielu elementów, trzeba znać poprawną indeks, który ma być używany podczas korzystania z funkcji get().

3

$("#someId") zwróci obiekt jQuery, tak aby dostać się do rzeczywistego elementu HTML można zrobić:

wrap[0] lub wrap.get(0).

Powiązane problemy