2011-12-12 18 views
6

jQuery: selettore di testo sensibile al maiuscolo/minuscolo?Is: text case sensitive?

Per esempio:

<input type="TEXT"> 

non corrisponde, ma:

<input type="text"> 

Does partita.

Questo sembra essere il caso. Sto solo cercando una verifica.

EDIT

Si sta cercando, come anche il [type = text] selettore è case sensitive in Chrome e Firefox, ma non IE8 (in modalità documento IE8)

+1

No non è "case sensitive" come potete vedere in questo jsfiddle: http://jsfiddle.net/5RMhK/2/ – sally

+2

'$ (': text') è equivalente a $ ('[tipo = testo] ') '(http://api.jquery.com/text-selector/). Non sembra: http://jsfiddle.net/ZWfb6/ – Eliasdx

+0

@sally Il primo elemento è ** non ** abbinato .. http://jsfiddle.net/6VzNv/ – Smamatti

risposta

4

Edit: nonostante la mia ricerca All'inizio ho disegnato la conclusione completamente sbagliata. La risposta è stata aggiornata: O (il kudo va a @ThiagoSantos che ha avuto la risposta corretta dall'inizio: D).

I jQuery ":text" documentation stati:

Perché: il testo è un'estensione jQuery e non fa parte della specifica CSS, query utilizzando: il testo non può sfruttare la spinta di prestazioni fornite dal metodo nativo DOM querySelectorAll().

Se ci si immerge nella source of 1.7.1 sembra questo selettore viene implementato come:

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

Per <input type="tEXt" /> il valore di attr risulta essere "testo", che non corrisponderà type. Con mia grande sorpresa quindi:

La risposta dovrebbe essere aggiornato: : il testo è case sensitive

+1

Non elem.getAttribute ("tipo") restituisce "tEXt" nell'esempio, nel qual caso sarebbe sensibile al maiuscolo/minuscolo? –

+0

Sì, mi dispiace. Ho aggiornato la mia risposta ora. Il kudo va dagli altri che hanno subito il jsfiddles corretto * si nasconde nella vergogna *: D – Jeroen

+0

Le conclusioni sono sopravvalutate. ; 0) In realtà, se sto leggendo il seguente link correttamente, getAttribute dovrebbe essere in minuscolo quando il DOM è un documento HTML. https://developer.mozilla.org/en/DOM/element.getAttribute –

3

Sembra che questo è ragazzi canse sensibili .. Quindi, in realtà il seguente non è vero

$ (': text') è equivalente a $ ('[type = text]')

Ecco un esempio .. solo un avviso per questa

http://jsfiddle.net/huX3M/

2

direi, in primo luogo, è sensibile e minuscole. Vedi this jsFiddle.

Dato che <input type="text"> dovrebbe comportarsi esattamente come <input type="TEXT">, credo che questo è probabilmente un bug.

In ogni caso, è preferibile utilizzare [type="text"], poiché può essere analizzato da querySelectorAll e pertanto offre significativi vantaggi in termini di prestazioni.

Problemi correlati