Pregunta

Necesito preguntar mi vieja pregunta, probablemente no debería haberla hecho a la 1 am :P

Parece que algunos atributos no se encuentran usando el selector de atributos de jquery:

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

Hasta ahora parece que no puedo usar el atributo action del formulario ni el atributo src de img.¿Hay alguna lista de atributos que no funcionan para que pueda escribir selectores personalizados para ellos?

¡Gracias de nuevo!


Editar: Nadie parece creer que algunos selectores no funcionen como se esperaba.Mira este ejemplo:En este sitio (que tiene jquery 1.3 para combatir incendios) hay un formulario que se parece a este:

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

(está alrededor del menú desplegable 'buscar descargas actuales').Si abres Firebug y pruebas este selector:

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

NO podrás seleccionar el formulario.No hay nada especial en 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, puedo hacer coincidencias con comodines, eso no es lo que busco.

¿Fue útil?

Solución

No hay una "lista" de atributos no soportados porque no debería ser; este es un error en jQuery.

Aquí están las entradas abiertas 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 en contra de la dirección URL completa en comparación con el atributo real de la acción / src tal como se define en el código HTML. Esto explica por qué el attributeEndsWith o la attributeContains selectores de hacer el trabajo en este caso.

Yo recomendaría simplemente dando la forma / imagen de una clase / ID y conseguir de una vez.

Otros consejos

Todo depende de qué 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, usted debe ingresar el valor del atributo exactamente el mismo que se define en el marcado - por ejemplo, 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 imágenes con src igual a "dog.jpg", no lo contiene.

Si desea atributos que definen sólo partes de él buscar, sugeriría leer el jQuery Selectores API página. Por ejemplo, para obtener todas las imágenes pizca src contiene "dog.jpg", se puede usar:

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top