我有一组相同的输入字段,我用 val() 更新值。它们需要具有相同的值,这样就可以了。但是有些输入字段位于隐藏的 div 中,我不想更新这些字段的值,但我的代码会更新它们。
<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>
在我的 Jquery 代码中:
$('.split').val(split_amount);
所以所有的值都得到相等的数量。但我不想填充隐藏的 div 中的输入字段。
感谢任何帮助。提前致谢!
最佳答案
这样就可以了:
$(".split:not(.hidden-div > .split)").val("your value");
此选择器将限定所有具有 split
类的元素,然后取消所有 hidden-div
的子元素和具有 split
类的元素>.
或者,如果 hidden-div
实际上不可见,那么您可以使用 jQuery 选择器根据元素的可见性进行过滤:
$(".split:visible").val("your value");
但请注意,如果页面上有许多 split
元素,此选择器的性能将不佳。 jQuery 必须检查多个元素属性以确定可见性。根据jQuery docs :
Elements can be considered hidden for several reasons:
- They have a CSS display value of none.
- They are form elements with type="hidden".
- Their width and height are explicitly set to 0. An ancestor element is hidden, so the element is not shown on the page.
关于javascript - jquery更新元素值除了隐藏div中的那些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44574632/