:text

选择所有的文本输入框,即 type 为 text 的元素。不包括 textarea 元素。

$(':text') 允许我们选择所有的 <input type="text"> 元素。如其它伪类选择器(以 ":" 开头的选择器)一样,建议使用此类选择器时,跟在一个标签名或者其它选择器后面,否则,默认使用了全局通配符选择器 "*"。换句话说,$(':text') 等价于 $('*:text'),所以应该使用 $('input:text') 来提升匹配效率。

注意: 从 jQuery 1.5.2 开始, :text 也选择那些 input 没有指定 type 属性的元素 (默认情况下 type="text")。

可以通过下面的例子,反映出 $(':text')$('[type=text]') 之间的区别:

$('<input>').is('[type=text]'); // false
$('<input>').is(':text'); // true

补充说明:

  • 由于 :text 是 jQuery 扩展出来的,它并不是 CSS 规范中的一部分。当使用 :text 时,并不会比使用原生的 DOM 方法 querySelectorAll() 性能好。为了在主流浏览器中得到更好的性能,请使用 [type="text"] 方法来代替。

示例:

查找所有的文本框。

<!DOCTYPE html>
<html>
<head>
<style>
  textarea { height:25px; }
  </style>
<script src="jquery.min.js"></script>
</head>
<body>

<form>
    <input type="button" value="Input Button"/>
    <input type="checkbox" />

    <input type="file" />
    <input type="hidden" />
    <input type="image" />

    <input type="password" />
    <input type="radio" />
    <input type="reset" />

    <input type="submit" />
    <input type="text" />
    <select><option>Option</option></select>

    <textarea></textarea>
    <button>Button</button>
  </form>
  <div>
  </div>

<script>



    var input = $("form input:text").css({background:"yellow", border:"3px red solid"});
    $("div").text("For this type jQuery found " + input.length + ".")
            .css("color", "red");
    $("form").submit(function () { return false; }); // so it won't submit



</script>
</body>
</html>

演示: