2011-03-24 15 views
5

Estoy tratando de obtener un selector jQuery para devolver todas las imágenes que no tienen un cierto src.jQuery image selector src

$('img[src!="/img/none.png"]') 

Estas imágenes ya son transparentes por lo que, por el bien de rendimiento que estoy tratando de excluirlos de los que yo fade in/out. Pero la pregunta sigue devolviendo las imágenes con src = /img/none.png

Sin embargo, si lo hago

$('img[src="/img/none.png"]') 

Se devolverá sólo las imágenes con src = /img/none.png. ¿Entonces parece que el selector de atributo no igual está roto?

documentación pertinente http://api.jquery.com/attribute-not-equal-selector/

Respuesta

10

tratar

$('img:not([src="/img/none.png"])'); 

Si eso no funciona, intente

$('img:not([src$="/img/none.png"])'); 

dependiendo del navegador que se encuentre, el src no se interpreta como lo que configura, se interpreta como el URI absoluto, por lo que su navegador cree que es http://www.yoursite.com/img/none.png. No estoy seguro de cómo jQuery está leyendo el src por lo que puede estar recogiendo el URI absoluto.

+0

Si la última sentencia fue la causa, entonces jQuery volvería todas las imágenes porque no son iguales a lo que uno especifica ... – JCOC611

+0

1 de '' $ = el que parece que la solución sensata. – karim79

+0

@JCOC - El segundo fragmento utiliza el [attribute-ends-with selector] (http://api.jquery.com/attribute-ends-with-selector/), por lo que podría leer "imágenes que no terminan con '/ img/none.png '". –

0

Intente utilizar el :not selector.

$('img:not([src="/img/none.png"])') 

Si estás usando una mezcla de rutas relativas o absolutas para la imagen que es posible que desee utilizar el selector "attribute ends with" como se menciona en otra respuesta.

$('img:not([src$="/img/none.png"])')