在jQuery中消隐输入的推荐方法是什么?

时间:2011-01-31 12:08:42

标签: jquery

我有一小部分字段需要在页面上消隐(所以我不能只使用输入运行一些东西)。

目前代码是这样的......

$('#txt1').val('');
$('#txt2').val('');
$('#txt3').val('');

链接它们是否更有效,还是我可以使用其他方法?

6 个答案:

答案 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.getElementByIddocument.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('');