jQuery .nextAll (пытается получить значение следующего ввода в DOM) возвращает с «неопределенным»

#html #jquery #dom

#HTML #jquery #dom

Вопрос:

Я пытаюсь получить значение ввода после изменения поля выбора с помощью jQuery.

 <div class="box">
<select class="howmuch">
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>

<div class="box">
<p>Some Text</p>
</div>

<div class="box">
<input class="entertext" type="text" placeholder="type something" />
</div>
  

если пользователь изменит select-input (class = сколько), я хотел бы получить значение следующего текстового ввода (class = entertext).

 <script>
 $(".howmuch").change(function() {
   var fetchtext = $(this).nextAll(".entertext:first").val();
   // also tried .nextall("input:first")
 });
 </script>
  

всегда возвращает «undefined»
Кто-нибудь, кто может помочь?

Комментарии:

1. у select нет братьев и сестер. nextAll смотрит на братьев и сестер

2. @Christoph Если мой ответ решил ваш вопрос, пожалуйста, отметьте его как принятый.

Ответ №1:

Правильный способ перемещения по dom — это использование parent() , nextAll() и find() для поиска нужного вам входного значения.

  $(".howmuch").change(function() {
   var fetchtext = $(this).parent().nextAll().find(".entertext:first").val();
   console.log(fetchtext);
 });  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="box">
<select class="howmuch">
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>

<div class="box">
<p>Some Text</p>
</div>

<div class="box">
<input class="entertext" type="text" placeholder="type something" />
</div>  

Комментарии:

1. К вашему сведению, ваши ссылки и имена ссылок смешаны