3

有没有一种简单的方法来选择所有类型的文本框?

IE。<input type=文本或电子邮件或网址或号码/>

我不介意密码或文本区域。

例如。我有这段代码可以选择所有具有自定义属性('特殊')的文本输入,它可以缩短吗?

$("input[type='text'][special],input[type='email'][special],input[type='url'][special],input[type='password'][special]")
4

3 回答 3

5

:input 选择器是否涵盖了您感兴趣的案例?

$(":input[special]")

文件:

:input selector基本上选择所有表单控件。

附加说明:
因为:input是 jQuery 扩展而不是 CSS 规范的一部分,使用的查询:input不能利用原生 DOM querySelectorAll() 方法提供的性能提升。要在使用:inputto 选择元素时获得最佳性能,首先使用纯 CSS 选择器选择元素,然后使用.filter(":input").

$("[special]").filter(":input"); 
于 2012-10-30T23:51:52.503 回答
0

你可以使用:

$(':input[special]')

虽然这也会抓住复选框等。

http://api.jquery.com/input-selector/

于 2012-10-30T23:51:33.817 回答
0

您可以使用$(":input[special]")$("[special]").filter(":input");

但我认为这更快:

$("input").filter(function() {
    return this.type !== "hidden" && this.getAttribute("special");
});

或者没有radioand checkbox'es

$("input").filter(function() {
    return this.type !== "hidden" && this.type !== "radio" && this.type !== "checkbox" && this.getAttribute("special");
});

请参阅文档:input

:input selector基本上选择所有表单控件。

附加说明:
因为:input是 jQuery 扩展而不是 CSS 规范的一部分,使用的查询:input不能利用原生 DOM querySelectorAll() 方法提供的性能提升。要在使用:inputto 选择元素时获得最佳性能,首先使用纯 CSS 选择器选择元素,然后使用.filter(":input").

于 2012-10-31T00:05:56.210 回答