2010-12-21 18 views
25

mañana todo,buscar imagen src que: contiene?

que tienen una lista de imágenes, así:

<ul id="preload" style="display:none;"> 
<li><img src="afx4000z-navy-icon-1_thumb.jpg"/></li> 
<li><img src="afx4000z-green-icon-1_thumb.jpg"/></li> 
</ul> 

Usando jQuery cómo encontrar todos de imagen src dentro ul # precarga que contienen una cadena específica, por ejemplo "verde"

. algo así como ...

var new_src = jQuery('#preload img').attr('src')*** that contains green ***; 

Respuesta

51

Es necesario utilizar the *= selector:

jQuery('#preload img[src*="green"]') 

Si quieren que sea sensible a mayúsculas, que será un poco más difícil:

var keyword = "green"; 
$("#preload img").filter(function(keyword) { 
    return $(this).attr("src").toLowerCase().indexOf(keyword.toLowerCase()) != -1; 
}); 
+0

Muchas gracias Gabi! ¡Funciona perfectamente! –

+0

Su segundo ejemplo arrojaría un error, los números no tienen el método '.toLowerCase()'. –

+2

¿Cómo puedo usar esta lógica para encontrar todas las imágenes que no tienen verde en ellas? – dubbs

10

puede utilizar un attribute-contains selector ([attr*=value]), así:

jQuery('#preload img[src*=green]') 
+2

mal. 'green' debe estar entre comillas. Desde el enlace: "Las citas son obligatorias". –

+1

encantador, ¿es sensible a mayúsculas y minúsculas? Supongo que sería ... ¿cómo puedo usarlo para no ser sensible a mayúsculas y minúsculas? –

+1

@Gabi - no son necesarios, pruébelo usted mismo ... solo son necesarios si el valor contiene algún carácter especial. –

Cuestiones relacionadas