jquery每个表单元素-如何获取表单中的下一个prev元素?

问题描述 投票:0回答:1

我有一个表单,其中每个输入元素都有一个带有文本的标签,而某些标签有一个带有'required'类的span项,并且在标签和文本输入之间可能还有一些div,例如

<label for="diameter">D<span class="required">Required</span></label>
<div ...
    <input type="text" id="diameter" name="diameter" value="20" />

我需要遍历所有带有标签的输入,并带有所需的跨度。我可以旋转所有跨度,例如

$('form .required').each(function(index, element) {
});

其中'element'是范围。但是我如何获得相关的输入呢?以下都不起作用:

element.next('input[type="text"]')
$(element).next('input[type="text"]')
jquery forms input each
1个回答
0
投票

从其for属性(可通过jQuery上的.attr或该元素上的.htmlFor访问),您可以获取其指向的ID,并使用该ID,可以选择所需的元素:

$('.required').each((_, span) => {
  const $input = $('#' + $(span).parent()[0].htmlFor);
  console.log($input.val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label for="diameter">D<span class="required">Required</span></label>
<div>
  <input type="text" id="diameter" name="diameter" value="20">
</div>
© www.soinside.com 2019 - 2024. All rights reserved.