Использование jQuery, что является лучшим способом найти следующий элемент формы на странице, начиная с произвольного элемента? Когда я говорю элемент формы, я имею в виду <input>
, <select>
, <button>
или <textarea>
.Лучший способ найти «следующий» элемент ввода формы в jQuery?
В следующих примерах элемент с идентификатором «это» является произвольной начальной точкой, а элемент с идентификатором «следующий» - это тот, который я хочу найти. Тот же ответ должен работать на всех примерах.
Пример 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>
Пример 2:
<ul>
<li><input id="this" type="text" /></li>
</ul>
<button id="next"></button>
Пример 3:
<input id="this" type="text" />
<input id="next" type="text" />
Пример 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>
EDIT: два ответа, предоставленные до сих пор, требуют записи порядкового номера ко всем входным элементам на странице. Как я уже упоминал в комментариях к одному из них, это то, что я уже делаю, и я бы предпочел иметь решение только для чтения, поскольку это будет происходить внутри плагина.
Это отлично работает. Благодаря redsquare, bobbytek4 и grault на freenode #jquery за их помощь. – 2008-11-15 02:16:15
Отфильтровать отключенные поля $ (": input: not (: disabled): eq (" + ($ (": input: not (: disabled)"). Index (currentElement) + 1) – Sentient 2011-04-19 18:33:36
Мне нужно было добавить еще set of parens, в противном случае он сделал строку concat по индексу. Закончено с: $ (": input: eq (" + ($ (": input"). index (this) + 1) + ")"); – 2012-05-24 23:16:37