Intereting Posts
Как очистить предыдущее значение текстового поля после отправки формы без обновления всей страницы Элемент «align» устарел или нестандартен: что я должен использовать вместо этого? Использование Google Fonts с SVG Как динамически изменять язык с помощью jquery-i18n-свойств и JavaScript? Использование jQuery, как получить координаты кликов на целевом элементе Как написать запрос AJAX GET с двумя параметрами, взятыми из html-файла? Открыть HTML-файл в браузере с помощью C ++ Легкий способ добавить выпадающее меню с 1 – 100 без 100 различных опций? HTML: горизонтальная прокрутка без scollbar Невозможно инициализировать плагин переупорядочения строк – rowReordering не является функцией вход в таблицу> td, но еще дополнительный интервал между строками! Internet Explorer Ширина Div = 100%? Стиль frameworks ссылки CSS не работает с: посещенным Как я могу вычислить сумму значений переключателей с помощью jQuery? Обнаружение столкновения jQuery / JavaScript

jQuery: найдите поле ввода, ближайшее к кнопке

У меня есть большая форма HTML с несколькими полями ввода (по одному в каждой строке). Среди них у меня есть несколько полей с определенным classом, которые появляются слева от кнопки. В этих строках нет других кнопок или полей, поэтому они содержат только поле и кнопку, как показано ниже.

Как я могу получить идентификатор такого поля при нажатии на кнопку справа от него, то есть ближе всего к нему?

Все поля, о которых идет речь, выглядят следующим образом:

 

Все соответствующие кнопки выглядят следующим образом:

  

Спасибо за любую помощь в этом, Тим.

Поскольку находится слева от вы можете найти его так:

 $('button').on('click', function(){ alert($(this).prev('input').attr('id')); }); 

Если был после вы можете найти его следующим образом:

 $('button').on('click', function(){ alert($(this).next('input').attr('id')); }); 

Вы можете перейти к родительской кнопке с помощью parent() и найти вход для потомков, используя find()

ИЛИ, если у вас есть многоуровневый потомок

 $(this).parent().find('.dateField') 

ИЛИ, если у вас есть потомки одного уровня

 $(this).parent().children('.dateField') 

или

 $(this).siblings('.dateField'); 

Аналогичным образом вы можете использовать next() или prev()

Используйте .prev () или .next (), если они находятся рядом друг с другом. (Это должно быть самым быстрым.) В противном случае вы также можете использовать .closest (), чтобы просто найти ближайший экземпляр этого classа.

Документация должна быть более чем достаточной помощью.

Изменить: вы также можете использовать .siblings () для поиска по родным и близким родственникам этого элемента.