jQuery选择器,用于选择所有类型的文本框

时间:2012-10-30 23:49:55

标签: jquery

有没有简单的方法可以选择所有类型的文本框?

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

我不介意密码或textarea。

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

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

3 个答案:

答案 0 :(得分:5)

:input selector是否涵盖了您感兴趣的案例?

$(":input[special]")

<强>文档:

  

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

     

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

$("[special]").filter(":input"); 

答案 1 :(得分:0)

您可以使用:

$(':input[special]')

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

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

答案 2 :(得分:0)

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

但我认为这更快:

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

或没有radiocheckbox'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()方法提供的性能提升。要在使用:input选择元素时获得最佳性能,请先使用纯CSS选择器选择元素,然后使用.filter(":input")