найти все jquery поля ввода после тега - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь найти все поля ввода, когда я щелкаю тег и вводим некоторые значения в эти поля ввода

i, используя console.log , чтобы проверить, что будет после я закрываю всплывающее окно

как здесь, я использую поля var = $(this).find('input[type="hidden"]') - Должен ли я использовать find, потому что он пересекает не верх, а низ

, все, что он находит, это просто тег привязки, а не все скрытые поля

Я не думаю, что мне нужно использовать each для этой цели

<a href="tag"></a>
<input value="1" type="hidden" class="myclass">
<input value="1" type="hidden" class="myclass">
<input value="1" type="hidden" class="myclass">

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

Вы можете просто использовать .nextAll() метод с правым селектором 'input[type="hidden"]', он выберет все inputs после элемента a:

$(this).nextAll('input[type="hidden"]').each(function() {
   $(this).prop("type", "text")
});

Демонстрация:

$("#myLink").click(function() {
  $(this).nextAll('input[type="hidden"]').each(function() {
    $(this).prop("type", "text")
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

<a id="myLink" href="#">Click me</a>
<input value="1" type="hidden" class="myclass">
<input value="1" type="hidden" class="myclass">
<input value="1" type="hidden" class="myclass">
1 голос
/ 17 апреля 2020

Все, что вам нужно, это nextAll и filter

$('a').nextAll().filter('input'); $('a').nextAll('input');

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

Обратите внимание: если элемент находится внутри другого элемента, это метод не найдет его.

PS. Спасибо cнŝdk за упоминание параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...