2013-03-11 11 views
5

To tylko szybki (mam nadzieję).

Byłem niedawno na łamach dialogowych jQuery UI wyglądać przy użyciu formularza wewnątrz dialogowym http://jqueryui.com/dialog/#modal-form i zauważyłem jakiś kod, który nie widział wcześniej:

var allFields = $([]).add(#input1).add(input2).add(input3).... 

Zastanawiam się co $ ([]) oznaczało?

Na początku myślałem, że to droga do utworzenia tablicy w jquery, ale gdy próbuję:

allFields.add(input4) 

po zmienna jest zadeklarowana nic innego jest dodawany?!?

Każda pomoc będzie bardzo ceniona! :) Próbowałem googling to, jednak nie mam dużo szczęścia.

Odpowiedz

4

Funkcja jQuery() akceptuje szereg różnych argumentów, z których jedna jest tablicą elementów DOM .add) . Przekazanie takiej tablicy spowoduje zwrócenie nowego obiektu jQuery zawierającego te elementy. W tym przypadku przekazują pustą tablicę, więc zwraca obiekt jQuery zawierający zero elementów.

Funkcja .add() doda więcej elementów do istniejącego zestawu.

Więc $([]) tworzy obiekt jQuery zawierająca żadnych elementów, .add('#input1') by dodać element z id z input1 do tego zestawu. Ponowne wywołanie .add('#input1') nie dodałoby niczego, ponieważ element jest już obecny.

+0

Dzięki, Anthony. Pierwotnie napisałem do skryptu php i zwróciłem wszystkie wartości, które zostały początkowo dodane. Kiedy próbowałem dodać kolejny element, np. var allFields = $ ([]). add (input1) .add (input2); allfields.add (input3) tylko zwróciło 2 oryginalne wartości zamiast wszystkich 3? –

+0

@RossWilson Co to są 'input1',' input2' i 'input3'? –

+2

@RossWilson: Metoda 'add' tworzy nowy zestaw i zwraca go. Będziesz musiał ponownie przypisać 'allFields':' allFields = allFields.add (input3) ' –

0
var allFields = $([]); 
allFields.add() 

w swoim pytaniu jesteś równa zmiennej do wartości powrotnej (metoda