jQuery:文本选择器区分大小写吗?
例如:
<input type="TEXT">
不匹配但是:
<input type="text">
匹配。
情况似乎如此。我只是在寻找验证。
修改
看起来甚至[type = text]选择器在Chrome和Firefox中也区分大小写但不是IE8(在IE8文档模式下)
答案 0 :(得分:4)
编辑:尽管我进行了研究,但我首先提到了完全错误的结论。答案已经更新:O(kudo去了@ThiagoSantos,从一开始就有正确答案:D)。
jQuery ":text" documentation州:
因为:text是jQuery扩展而不是CSS规范的一部分,使用:text的查询无法利用本机DOM querySelectorAll()方法提供的性能提升。
如果你深入研究source of 1.7.1,看来这个选择器实现为:
text: function( elem ) {
var attr = elem.getAttribute( "type" ), type = elem.type;
// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
// use getAttribute instead to test this case
return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
}
对于<input type="tEXt" />
,attr
的值变为“tEXt”,与type
不匹配。这让我很惊讶:
更新的答案应为::文字区分大小写
答案 1 :(得分:3)
答案 2 :(得分:2)
我会说,首先,是它区分大小写。请参阅this jsFiddle。
鉴于<input type="text">
应该与<{1}}完全,我相信这可能是一个错误。
在任何情况下,最好使用<input type="TEXT">
,因为[type="text"]
可以解析它,因此会带来显着的性能优势。