我有一个表单,其中每个输入元素都有一个带有文本的标签,而某些标签有一个带有'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"]')
从其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>