JQuery, самый близкий от значения элемента

Я пытаюсь получить значение элемента формы, использующее самый близкий. Здесь некоторый пример кода.

<table>
  <tr>
    <td>Hour <input type="input" value="12" name="data[hour]" class="hour" /></td>
    <td>Minute <input type="input" value="12" name="data[minute]" class="minute" /></td>
    <td><a href="#" class="add-data">Add Row</a></td>
  </tr>
</table>

Посмотрите, что я не могу сериализировать форму, потому что это - часть большой формы, таким образом, я должен захватить каждый вход, самый близкий к добавлять ссылке строки, поскольку эй сможет добавить несколько строк.

Я попробовал

var hour = $(this).closest('.hour').val();    
var hour = $(this).closest('input', '.hour').val();
var hour = $(this).closest('input[name="data[hour]]").val();

Какие-либо идеи, как я могу получить значения формы?

Заранее спасибо

5
задан Lee 8 July 2010 в 16:04
поделиться

2 ответа

Предполагая, что у вас есть только один элемент .hour на tr, это сделает это:

var hour = $(this).closest('tr').find('.hour').val();

closest :

Получит первый элемент-предок, который соответствует селектору, начиная с текущий элемент и прогрессирует через дерево DOM.

Итак, вам нужно подняться на tr и оттуда найти потомка .hour .

13
ответ дан 18 December 2019 в 13:10
поделиться

Чтобы расширить ответ Karim79:

.closest () перемещается вверх по дереву DOM, пока не найдет совпадение. Он не будет работать с элементами на одном уровне - например, в вашем случае (все элементы имеют td как родительский).

http://api.jquery.com/closest/

Чтобы использовать closest () в вашей ситуации, вам придется использовать (что здесь немного излишне):

$(this).closest("tr").find(".hour").val();
1
ответ дан 18 December 2019 в 13:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: