2011-08-08 18 views
12

Czy jQuery zawsze zwraca tablicę przy wybieraniu elementu (oczywiście jeśli przynajmniej jeden element istnieje)? Przykład:Czy jQuery zawsze zwraca tablicę?

$('#Myelement') 
$('div') 
$('tbody') 

Co się stanie, jeśli selektor jest identyfikatorem? Co się stanie, jeśli selektor jest elementem, ale ma tylko jedno wystąpienie?

Odpowiedz

12

Funkcja jQuery zawsze zwraca obiekt jQuery (oparty na tablicy), nawet jeśli nie ma elementów pasujących do selektora.

W ten sposób można zawsze wywołać metodę, która ma wpływ na elementy znalezione, nawet jeśli nie ma żadnych elementów, które pasują do siebie. Jeśli obiekt jQuery nie zawiera żadnych elementów, po prostu nie zrobi nic.

Jeśli chcesz wiedzieć, czy obiekt jQuery zawiera żadnych elementów, można użyć właściwości length.

+0

Moim zdaniem, drugi oświadczenie nie jest dobrym wytłumaczeniem, ponieważ nie jest to dlaczego jQuery zwraca tablicę. To dlatego, że $() znajduje elementy pasujące do danego selektora, więc nie możesz oczekiwać, że element będzie miał jakiś id, ale wynik zawierający element mający jakiś id. –

+0

@ Fizjoterapeuta Matíasa: Drugi akapit nie wyjaśnia, dlaczego metody zwracają tablicę, to wyjaśnienie, w jaki sposób można wykorzystać to na swoją korzyść. Obawiam się, że nie rozumiem, o co ci chodzi z wyjaśnieniem, które oferujesz. – Guffa

+1

Ale kiedy zrobić '$ („TD”) [0] .html („hi”)', to daje mi wyjątek, to mówi, że wskaźnik ma 'metody .html', czyli elementów na tablicy zwróconej przez jQuery nie są częścią obiektu jQuery. Czy się mylę? – dpp

1

Ponieważ $([selector]) jest jak skrót od $.find([selector]), który jest wyszukiwaniem elementów.

To wszystko wykonywane z takich jQuery funkcji może zwrócić jeden lub więcej wyników, ponieważ szukasz zamiast „wybierając wynik”.