我有一小部分字段需要在页面上消隐(所以我不能只使用输入运行一些东西)。
目前代码是这样的......
$('#txt1').val('');
$('#txt2').val('');
$('#txt3').val('');
链接它们是否更有效,还是我可以使用其他方法?
答案 0 :(得分:3)
你可以这样做:
$('#txt1, #txt2, #txt3').val('');
或者:
$('#txt1, #txt2, #txt3').empty();
可以看出,您可以通过用逗号分隔多个选择器来组合它们。
或者,您可以将类应用于要清除文本的字段,并在选择器中使用类,如下所示:
$('.empty').empty();
你的傻瓜应该是这样的:
<input class='empty' name="name1" />
<input class='empty' name="name2" />
<input class='empty' name="name3" />
答案 1 :(得分:2)
您可以一次选择所有内容:
$('#txt1, #txt2, #txt3').val('');
这不会产生显着影响,但可能会有一些小改进。最大的改进是让你的代码重复性更低,因此更容易理解。
修改:In fact, this makes the selection significantly slower.这是因为单个ID的选择非常快。 document.getElementById
比document.querySelectorAll
更快。坚持你所拥有的。
答案 2 :(得分:1)
你可以尝试为每个人添加一个......
<强> HTML 强>
<input class='blankable' type=... />
<强>的JavaScript 强>
$('.blankable').val('');
答案 3 :(得分:1)
好吧,我会用一行和null来做,但我想它不过你喜欢它:
<input value="foo" id="txt1" />
<input value="foo" id="txt2" />
<input value="foo" id="txt3" />
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.min.js'></script>
<script>
$(document).ready(function(){
$('#txt1, #txt2, #txt3').val(null);
});
</script>
答案 4 :(得分:1)
请注意,设置.val('')
不适用于所有类型的:input
元素。
我使用的功能可能不完整,但涵盖了我的应用程序当前遇到的所有场景。
function clearForm($container) {
$(':input', $container).each(function() {
$(this).removeClass('input-validation-error');
if (!$(this).attr('readonly')) {
var type = this.type;
if (type == 'text' || type == 'file')
this.value = "";
else if (this.tagName.toLowerCase() == 'select')
this.selectedIndex = 0;
// checkboxes need to have their checked state cleared
// but should *not* have their 'value' changed
else if (type == 'checkbox' || type == 'radio')
this.checked = false;
}
});
}
答案 5 :(得分:0)
jQuery(':input').val('');
应选择所有输入并清除值。但我不知道<select>
和<textarea>
是否需要特别注意。此外,如果您有<input type="hidden">
,则可能需要排除不可见的输入。在这种情况下,请考虑:
jQuery('[type!="hidden"]:input').val('');
刚看到我错过了什么。如果要从子集中进行选择,请先选择子集。
jQuery('#subset :input').val('');