我有一个表单,包括Textbox,Textarea,Password和一些kendo下拉列表和组合框。我想清除Clear
按钮上的所有控件,除了一个文本框和textarea。
我已完成以下操作以清除所有控件。
$('#btnClear').on('click', function () {
$(this).closest('form').find('input[type=text], textarea, input[type=password]').val('');
});
我不知道如何不清除某些控件。
答案 0 :(得分:5)
使用.not()
过滤方法:
描述:从匹配元素集中删除元素。
$('#btnClear').on('click', function () {
$(this).closest('form')
.find('input[type=text], textarea, input[type=password]')
.not('foo')
.val('');
});
foo
是一个引用异常的选择器(即不想要清除的控件)。
答案 1 :(得分:4)
您可以通过以下方法实现该功能:
将一些课程应用于您不想清除的控件,如下所示:
<div id="parent">
<input type="text" id="textOne" /><br/>
<input type="text" id="textTwo" class="ignoreT" /><br/>
<textarea id="textThree" class="ignoreTA" ></textarea><br/>
<input type="text" id="textFour" class="ignoreT" /><br/>
<button id="clear">Clear</button>
</div>
现在编写以下代码以清除除忽略类控件之外的所有控件:
$('#clear').click(function(){
$(this).closest('form').find('input:not(".ignoreT"), textarea:not("ignoreTA")').val('');
});
或者您可以将相同的类(假设忽略)应用于所有控件并编写以下代码:
$('#clear').click(function(){
$(this).closest('form').find('input, textarea').not('.ignore').val('');
});
看看它是否适合你。
答案 2 :(得分:3)
尝试使用 :not-selector ,
让someId
是一个文本框,otherId
是texxarea,不应为空
$('#btnClear').on('click', function () {
$(this).closest('form').find('input:not(#someId),textarea:not(#otherId)').val('');
});
此外,您可以使用non-empty-elements
和[{1}}之类的公共类,如
:not
请注意,您需要将$('#btnClear').on('click', function () {
$(this).closest('form')
.find('input[type=text], textarea, input[type=password]')
.not('.non-empty-elements')// filter non-empty-elements
.val('');
});
类添加到那些不应该为空的元素
答案 3 :(得分:1)
使用not()
$(this).closest('form').find('input[type=text], textarea, input[type=password]').not('#myControlId1,#myControlId2').val('');
#myControlId1
&amp; #myControlId1
是您不想清除的控件的ID
答案 4 :(得分:0)
您可以使用selector并定义除
之外的其他内容$(html).not('span:first').remove();
参考链接: 1. jquery remove all elements except for first one
2 How to remove all the <tr> from a table except the first one using jquery
基于css: - jQuery how to delete or hide all html except selected <div>