如何过滤特定div中的输入字段

时间:2019-02-17 12:13:53

标签: jquery filter

这将过滤HTML中的所有输入字段:

var required = $('input, textarea, select').filter('[required]:visible')

我要过滤特定的div:

<div id="a">
  <input ... required>
</div>
<div id="b">
  <input ... required>
  <input ... required>
</div>

1 个答案:

答案 0 :(得分:1)

您可以简单地使用以下选择器,该选择器利用:input(还将选择<button> s,如果可以的话,您可以切换回input,textarea,selectfilter不需要):

$('#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>