Chciałbym uzyskać taki sam efekt jak jQuery.serialize()
ale chciałbym zwrócić tylko elementy potomne danego div
.
Przykładowy wynik:
single=Single2&multiple=Multiple&radio=radio1
jquery
serialization
BrokeMyLegBiking
źródło
źródło
$("#divId").find("select, textarea, input").serialize();
byłoby lepszej wydajności? Wyobrażam sobie, że powyższe mogłoby działać wolno, gdyby element div miał wiele elementów, na przykład tabelę z kilkoma wierszami / kolumnami.Możesz zwiększyć szybkość swojego kodu, jeśli ograniczysz elementy, na które będzie patrzeć jQuery.
Aby to osiągnąć, użyj selektora : input zamiast * .
Dzięki temu Twój kod będzie szybszy, ponieważ lista elementów jest krótsza.
źródło
serialize
wszystkie elementy formy w plikudiv
.Możesz to zrobić, kierując element div
#target-div-id
wewnątrz swojegoform
za pomocą:źródło
Funkcja, której obecnie używam:
źródło
Spróbuj także tego:
źródło
A co z moim rozwiązaniem:
Pokaż fragment kodu
źródło
Jeśli te elementy mają wspólną nazwę klasy, można również użyć tego:
W ten sposób można uniknąć wybierania przycisków, które zostaną wybrane za pomocą selektora jQuery
:input
. Chociaż można tego również uniknąć, używając$('#your_div :input:not(:button)').serialize();
źródło
źródło
ID
w każdym selektorze, na przykład$('#divId > input, #divId > select, #divId > textarea')
:; Również>
symbol odnosi się do bezpośrednich elementów dziecięcych ... Bardzo nietypowe w tym scenariuszu lub przynajmniej bardzo restrykcyjne.