如何忽略隐藏div中的元素?我有一个带有可见元素的表单和一些隐藏在div中的元素...
<form id="my-form">
<input name="split_values[]" class="split">
<input name="split_values[]" class="split">
<input name="split_values[]" class="split">
<div class="hidden-div">
<input name="split_values[]" class="split">
</div>
</form>
我正在通过元素进行验证......
$('#my-form *').filter(':input').each(function(){
// my validation here
});
但我想忽略隐藏div中的任何值。所以我想只看到前三个元素的验证,而不是隐藏div中的第四个元素。由于元素是动态生成的,因此我无法为它们提供ID。
提前致谢。
答案 0 :(得分:3)
您可以使用:visible
伪选择器过滤掉隐藏的input
字段:
$('#my-form *').filter(':input:visible').each(function() {
// my validation here
});
答案 1 :(得分:1)
如果您确定您的结构不会改变,可以使用
$('#my-form>input')
只能获得表单中直接子节点的输入,不包括div。
$('#my-form>:not(.hidden-div)')
这将使我的形式的所有孩子都不属于隐藏的div-div
答案 2 :(得分:0)
$('#my-form *').filter(':input').each(function(){
if(!$(this.parentElement).hasClass('hidden-div')){
console.log(this);
}
});
答案 3 :(得分:0)
我相信工作的例子,就在这里。
console.log($('#my-form .split:not(.hidden-div .split)').length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="my-form">
<input name="split_values[]" class="split">
<input name="split_values[]" class="split">
<input name="split_values[]" class="split">
<div class="hidden-div">
<input name="split_values[]" class="split">
</div>
</form>
答案 4 :(得分:-1)
使用div类的选择器
应用not函数<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
(click to remove)
<div class="element">
<div>
Element 1
</div>
</div>
<div class="element">
<div>
Element 2
<br>Second line
</div>
</div>
<div class="element">
<div>
Element 3
</div>
</div>
<div class="element">
<div>
Element 4
<br>Second line
</div>
</div>
<div class="element">
<div>
Element 5
</div>
</div>