Jquery 需要优化用name属性替换多个输入字段内容的方法

Jquery 需要优化用name属性替换多个输入字段内容的方法,jquery,Jquery,我想将输入类型值设置为空,我只需输入passon name属性。 比如说 1多行: $('input[name="library"]').val(''); $('input[name="books"]').val(''); $('input[name="author"]').val(''); 2单线: $('input[name="library"],input[name="books"],input[name="author"]').val(''); 以上两条线都为我工作。但我想要更多的优

我想将输入类型值设置为空,我只需输入passon name属性。 比如说

1多行:

$('input[name="library"]').val('');
$('input[name="books"]').val('');
$('input[name="author"]').val('');
2单线:

$('input[name="library"],input[name="books"],input[name="author"]').val('');
以上两条线都为我工作。但我想要更多的优化方式。有没有办法写得像下面这样

$('input[name="library"][name="books"][name="author"]').val('');
它会将所有3个输入字段都清空吗


还有一件事,我正在从其他服务器获取这些输入字段,并且我无法更改他们服务器上的输入字段类。因此,我只想替换我上面解释的一些输入字段。

当然,最简单的方法是将一个类添加到所有三个输入中,然后根据该类更改它们的值作为选择器

<input type="text" name="library" class="input_change" />


$('.input_change').val('')

您可以使用相同的类名对所有输入进行分组,如:inputGroup

您的问题的答案是:

$'.inputGroup'.val

试试这个

$("input[type=text]").each(function() {
    $(this).val('My new value');
});

您可以通过删除“input”稍微优化语法;[attr=val]语法本身起作用:

$('[name="library"],[name="books"],[name="author"]').val('');

或者您正在寻求性能优化?

您可以使用阵列和函数:

function inputEmpty( elem ) {
    $('input[name="'+elem+'"]').val('');
}

var names = [ "library", "books", "author" ];
names.forEach( inputEmpty );
选中fiddle-

如果您在jquery选择器中查找或喜欢语法,则答案是否,选择器中没有or运算符

最后一种方法是最简洁的方法,可以在不失去任何精确性的情况下选择您想要的内容

$('input[name="library"][name="books"][name="author"]').val('');

显示您的标记。。这样我们就可以从不同的角度来思考。比如$':input.filter'[name=library][name=books][name=author]'.val@chridam是一种优化的方法。从jQuery API文档来看,:input是一种扩展,不属于CSS规范的一部分,使用:input的查询无法利用原生DOM querySelectorAll方法提供的性能提升,但最好的性能是通过首先使用纯CSS选择器选择元素来实现的,然后使用.filter:input.Thank,我知道这一个,但我从其他服务器获取这些所有输入字段,并且我无法更改他们服务器上的输入字段类。所以我只想替换我这边的一些输入字段,我解释了,好的。编辑您的问题以反映这一点,以便其他人不会感到困惑: