Как найти значение атрибута ближайшего входного имени

0

учитывая следующий html:

<input name="name goes here" type="text" value="value goes here">
<span class="suggestInput" data-type="tag">
<img src="../images/icons/wand.png" title="Suggest an input" alt="">
</span>

im, пытаясь найти значение атрибута name для самого близкого входа, которое находится выше класса 'suggestInput' выше. В моем примере он должен возвращать имя здесь

Я пробовал:

$(".suggestInput").click(function(event) {
    event.preventDefault();

   var test1 = $(this).closest("input").attr("name");
   var test2 = console.log($(this).find().closest("input").attr("name"));
});

и они оба возвращаются "неопределенными".

Что не так?

Теги:

2 ответа

4
Лучший ответ

.closest() используется для поиска элемента-предка, в вашем случае элемент ввода не является элементом-предком элемента span.suggestInput, это предыдущий брат, поэтому используйте .prev(), чтобы найти его

var test1 = $(this).prev("input").attr("name");
  • 0
    Yeap! это сделал
1

Вы можете использовать .prev() здесь, потому что input является непосредственным предыдущим родственником вашего диапазона:

var test1 = $(this).prev().attr("name");

.closest() не работает, потому что этот метод будет пересекать дерево DOM и получить ближайший сопоставимый предк, который не применим в вашем случае:

  • 0
    Я не замечаю, что мне нужно вводить подтверждение SO, поскольку я отвечаю на другой вопрос в то же время.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню