这将过滤HTML中的所有输入字段:
var required = $('input, textarea, select').filter('[required]:visible')
我要过滤特定的div:
<div id="a">
<input ... required>
</div>
<div id="b">
<input ... required>
<input ... required>
</div>
答案 0 :(得分:1)
您可以简单地使用以下选择器,该选择器利用:input
(还将选择<button>
s,如果可以的话,您可以切换回input,textarea,select
和filter
不需要):
$('#a :input:visible[required]');
将#a
替换为要过滤的div。
如果元素需要恰好位于div下,则可以改用#a > :input:visible[required]
。
演示:
var $required = $('#a :input:visible[required]');
// Just to showcase what this selector matches
$required.css('background-color', 'red');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="a">
<p>A1: <input type="text" required></p>
<p>A2: <textarea required></textarea></p>
<p>A3: <select required><option>option1</option></select></p>
<p>A4 (hidden, won't be matched): <input type="text" style="display:none" required></p>
</div>
<div id="b">
<p>B1: <input type="text" required></p>
<p>B2: <input type="text" required></p>
</div>