Korzystając z jQuery, jaki jest najlepszy sposób na znalezienie następnego elementu formularza na stronie, zaczynając od dowolnego elementu? Kiedy mówię element formularza mam na myśli <input>
, , <button>
lub <textarea>
.Najlepszy sposób na znalezienie elementu wejściowego "następnego" formularza w jQuery?
W poniższych przykładach element o identyfikatorze "this" jest arbitralnym punktem początkowym, a element o identyfikatorze "next" jest tym, który chcę znaleźć. Ta sama odpowiedź powinna działać dla wszystkich przykładów.
Przykład 1:
<ul>
<li><input type="text" /></li>
<li><input id="this" type="text" /></li>
</ul>
<ul>
<li><input id="next" type="text" /></li>
</ul>
<button></button>
Przykład 2:
<ul>
<li><input id="this" type="text" /></li>
</ul>
<button id="next"></button>
Przykład 3:
<input id="this" type="text" />
<input id="next" type="text" />
Przykład 4:
<div>
<input id="this" type="text" />
<input type="hidden" />
<div>
<table>
<tr><td></td><td><input id="next" type="text" /></td></tr>
</table>
</div>
<button></button>
</div>
EDYCJA: Dwie dotychczasowe odpowiedzi wymagają wpisania numeru sekwencyjnego do wszystkich elementów wejściowych na stronie. Jak wspomniałem w komentarzach jednego z nich, jest to rodzaj tego, co już robię i wolałbym mieć rozwiązanie tylko do odczytu, ponieważ będzie to działo się wewnątrz wtyczki.
To działa świetnie. Dzięki redsquare, bobbytek4 i grault na freenode # jquery za ich pomoc. –
Odfiltruj wyłączone pola $ (": input: not (: disabled): eq (" + ($ (": input: not (: disabled)"). Index (currentElement) + 1) – Sentient
Potrzebowałem dodać kolejne zestaw parens, w przeciwnym razie wykonał ciąg konkat na indeksie: Zakończony z: $ (": input: eq (" + ($ (": input"). index (this) + 1) + ")"); –