2011-12-12 17 views
6

jQuery:テキストセレクタは大文字と小文字を区別しますか?例についてはは:大文字と小文字を区別しますか?

<input type="TEXT"> 

が一致しませんが:

<input type="text"> 

は試合を行います。

これはそうであるようです。私はただ検証を探しています。

EDIT

それも、[タイプ=テキスト]のように見ている

は、セレクタは(IE8ドキュメントモードで)ChromeとFirefoxのではなく、IE8で大文字と小文字が区別され

+1

このjsfiddleでわかるように、大文字と小文字は区別されません:http://jsfiddle.net/5RMhK/2/ – sally

+2

'$( ':text')は$( '[type = text] ') '(http://api.jquery.com/text-selector/)。次のようには見えません:http://jsfiddle.net/ZWfb6/ – Eliasdx

+0

@sally最初の要素は**合わない** http://jsfiddle.net/6VzNv/ – Smamatti

答えて

4

編集:私の研究にもかかわらず、私は最初にの結論を完全に間違って描いた。回答が更新されました:O(kudoさんが@ThiagoSantosから始めて正解があった人物D)。

jQuery ":text" documentation状態:

ので:テキストは、jQueryの延長ではなく、CSSの仕様の一部であり、使用してクエリ:テキストがネイティブDOM querySelectorAll()メソッドが提供するパフォーマンス向上の利点を取ることができません。

あなたはsource of 1.7.1に飛び込む場合、このセレクタが実装されているようだ:attrの値がtypeとは一致しません「テキスト」、であることが判明し<input type="tEXt" />については

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); 
} 

。その後、私自身驚いたことには:

更新答えは次のようになります。:テキストは、これがcanse敏感な男であるように思える

+1

あなたの例でelem.getAttribute( "type")が "tEXt"を返さないのであれば、大文字と小文字が区別されますか? –

+0

はい、申し訳ありません。私は今私の答えを更新しました。 Kudoは最初から正しいjsfiddlesを持っていた他の人々に行く*羞恥*で隠す:D – Jeroen

+0

結論は過大評価されている。 ; 0)実際には、次のリンクを正しく読んでいるなら、getAttributeはDOMがHTML文書の場合は小文字にする必要があります。 https://developer.mozilla.org/en/DOM/element.getAttribute –

3

大文字と小文字を区別..です だから現実には、次のは真実ではありません

$( ':テキスト')( '[タイプ=テキスト]')$と等価です

ここでは、この

ための唯一の1つのアラートが...サンプルです

http://jsfiddle.net/huX3M/

2

私はそれは、大文字と小文字が区別され、まず、はいを言うでしょう。 this jsFiddleを参照してください。

<input type="text">正確<input type="TEXT">ように振る舞うべきであることを考えると、私はこれはおそらくバグであると考えています。

いずれにしても、それはquerySelectorAllによって解析できるので、[type="text"]を使用するほうが優れており、パフォーマンスに大きなメリットがあります。

関連する問題