2009-04-13 11 views
6

necesito reask mi vieja pregunta, probablemente deberíamos haber preguntado a la 1am: Patributos no encontrado por selector de atributos jQuery

Parece que algunos atributos no se encontraron usando selector de atributos de jQuery:

$("*[some=value]"); 

Hasta ahora parece que no puedo usar el atributo de acción del formulario y el atributo src de img. ¿Hay alguna lista de atributos que no funcionen en alguna parte, así que puedo escribir selectores personalizados para ellos?

¡Gracias nuevamente!


Editar: Nadie parece creer que algunos selectores no funcionan como se esperaba. Mira este ejemplo: En this site (que tiene jQuery 1.3 de ella para firebugging) hay una forma que se parece a esto:

<form style="display: inline;" method="get" action="list"> 

(desplegable sus torno al concepto de búsqueda descargas actuales '). Si abre firebug y prueba este selector:

$("form[action=list]"); 

NO podrá seleccionar el formulario. No hay nada especial sobre el atributo de acción. Lo mismo ocurre con el src de la imagen del logotipo en esa página:

<img alt="Logo" src="/p/aost/logo?logo_id=1238551994"/> 

El selector que no funciona es:

$("img[src=/p/aost/logo?logo_id=1238551994"); 

Claro, yo puedo hacer comodín coincide, eso no es lo que busco .

+1

Por favor, * no * vuelva a sus preguntas. Simplemente edite su anterior. Eso lo golpeará, si realmente siente que es útil. –

+1

No sabía eso - haré eso en el futuro – mkoryak

+1

Está bien, no te preocupes por eso. Es posible que desee editar la pregunta anterior para vincularla a esta si esta pregunta le dio una solución y luego pedirle a la gente que vote para cerrar la anterior. –

Respuesta

11

No hay una "lista" de atributos no admitidos porque no debería haberlos; esto es un error en jQuery.

Éstos son los billetes abiertos en esto:

Al parecer, el denominador común entre los insectos es que jQuery es la comparación de la cadena de selección que se especifique contra la URL completa en oposición al atributo de acción/src real tal como está definido en el HTML. Esto explica por qué los selectores attributeEndsWith o attributeContains funcionan en este caso.

Recomendaría solo darle una forma/imagen al formulario/imagen y terminar con eso.

+0

Gracias, esta es la información que estaba buscando – mkoryak

4

Todo depende de la versión de jQuery que esté utilizando.

Antes de 1.3, se puede utilizar la notación @:

$("*[@name=value]") 

Así que tal vez añadiendo @ ayuda.

Aparte de eso, debe ingresar el valor del atributo exactamente del mismo modo que está definido en el marcado, p. si usted está tratando de encontrar una imagen con src="http://example.com/dog.jpg", no hacer esto porque no va a funcionar:

$("img[src=dog.jpg") 

ya que se trata de encontrar las imágenes con src igual a "dog.jpg" no lo contiene

Si desea buscar atributos que definan solo partes de él, le sugiero que lea la página jQuery API Selectors. Por ejemplo, para obtener todas las imágenes pizca src contiene "dog.jpg", podría utilizar:

$("img[src*=dog.jpg]") 

Del mismo modo, se pueden encontrar elementos cuyos atributos comenzar o terminar con valores/cadenas específicas.

+0

Actualicé mi jquery y ahora el selector de atributos (el segundo ejemplo) ya no funciona. ¿Alguna idea? – Scott

Cuestiones relacionadas