2011-12-12 21 views
6

¿Es sensible el mayúscula jQuery: text selector?¿El texto es sensible a mayúsculas y minúsculas?

Por ejemplo:

<input type="TEXT"> 

pero no coincide:

<input type="text"> 

coincide.

Este parece ser el caso. Solo estoy buscando verificación.

EDITAR

Se está pareciendo incluso el [type = text] selector de mayúsculas y minúsculas en Chrome y Firefox, pero no IE8 (en el modo de documento de Internet Explorer 8)

+1

No, no es 'sensible a mayúsculas y minúsculas' como se puede ver en este jsfiddle: http://jsfiddle.net/5RMhK/2/ – sally

+2

' $ (': text') es equivalente a $ ('[type = text] ') '(http://api.jquery.com/text-selector/). No se ve así: http://jsfiddle.net/ZWfb6/ – Eliasdx

+0

@sally El primer elemento es ** no ** coincide con .. http://jsfiddle.net/6VzNv/ – Smamatti

Respuesta

4

Editar: a pesar de mi investigación Dibujé el conclusión completamente incorrecta al principio. La respuesta ha sido actualizada: O (los kudo van a @ThiagoSantos que tuvieron la respuesta correcta desde el comienzo: D).

Los jQuery ":text" documentation estados:

Porque: el texto es una extensión de jQuery y no forma parte de la especificación CSS, consultas usando: texto no puede aprovechar el aumento de rendimiento proporcionado por el método nativo DOM querySelectorAll().

Si sumergirse en el source of 1.7.1 parece este selector se implementa como:

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

Para <input type="tEXt" /> el valor de attr resulta ser "texto", que no coincidirá con type. Para mi propia sorpresa a continuación:

La respuesta actualizado se debe: : texto entre mayúsculas y minúsculas

+1

¿Elem.getAttribute ("type") no devolvería "tEXt" en su ejemplo, en cuyo caso sería sensible a mayúsculas y minúsculas? –

+0

Sí, lo siento. He actualizado mi respuesta ahora. Los Kudo se dirigen a las otras personas que tenían los Jsfiddles correctos desde el principio * se esconden avergonzados *: D – Jeroen

+0

Las conclusiones están sobrevaloradas. ; 0) En realidad, si estoy leyendo el siguiente enlace correctamente, getAttribute debería minúsculas cuando el DOM es un documento HTML. https://developer.mozilla.org/en/DOM/element.getAttribute –

3

Parece que esto es chicos canse sensibles .. Así que, en realidad, los siguientes no es cierto

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

He aquí una muestra .. sólo una alerta para esta

http://jsfiddle.net/huX3M/

2

yo diría, en primer lugar, sí es entre mayúsculas y minúsculas. Ver this jsFiddle.

Dado que <input type="text"> debe comportarse exactamente como <input type="TEXT">, creo que esto es probablemente un error.

En cualquier caso, es mejor usar [type="text"], ya que puede ser analizado por querySelectorAll y por lo tanto tendrá importantes beneficios de rendimiento.

Cuestiones relacionadas