:text
选择所有的文本输入框,即 type 为 text 的元素。不包括 textarea 元素。
-
1.0 新增:text
$(':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>