Foros del Web » Programando para Internet » Javascript »

Condicional cuando imagen dentro de clase

Estas en el tema de Condicional cuando imagen dentro de clase en el foro de Javascript en Foros del Web. Hola. Llevo toda la tarde intentando crear una condicional para el caso de que dentro de este div de clase halla una imagen tal "como ...
  #1 (permalink)  
Antiguo 28/03/2018, 13:30
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Condicional cuando imagen dentro de clase

Hola.

Llevo toda la tarde intentando crear una condicional para el caso de que dentro de este div de clase halla una imagen tal "como imagenx.png"


Código:
<div style="background-image: url('https://www. unaweb .com/db/components/assets/images/imagenx.png');" class="thumbnail">
<a href="https://www. unaweb .com/12637" style="display: block; height: 100%;"></a>
</div>
Es decir, si "imagenx.png" existiese dentro la clase "thumbnail", entonces tal...

No me sale de ninguna forma. ¿Se le ocurre a alguien como con javascript puro (no jQuery)?

Gracias.
  #2 (permalink)  
Antiguo 28/03/2018, 14:08
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 10 meses
Puntos: 528
Respuesta: Condicional cuando imagen dentro de clase

¿ Y cómo se puede saber cuál div quieres examinar?

Pregunto por que en el ejemplo que pones no se sabe si hay uno o más divs, y si quieres buscar en un div en especial o en todos los que haya en la página.

Si es un div específico, ayudaría que le pusiera un id.
  #3 (permalink)  
Antiguo 28/03/2018, 14:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Respuesta: Condicional cuando imagen dentro de clase

No, no es un div único, sino una clase, definida por class="thumbnail"

Si existe esa imagen en la clase, entonces un resultado.
  #4 (permalink)  
Antiguo 28/03/2018, 16:48
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Respuesta: Condicional cuando imagen dentro de clase

He encontrado esta solución para el caso de que en lugar de una clase fuese un id.

Código:
var img = document.getElementById('thumbnail'),
style = img.currentStyle || window.getComputedStyle(img, false),
bi = style.backgroundImage.slice(4, -1).replace(/"/g, "");

if (bi == "https://www. unaweb .com/db/components/assets/images/imagenx.png") {
alert("I am an alert box!")
}
Funciona, pero no soy capaz de aplicarlo a todas las clases de un documento.

Con esta función se pueden manejar todas las clases del documento, por ejemplo para ocultarlos.

Código:
var elems = document.getElementsByClassName( 'thumbnail' );
for ( var i = 0, l = elems.length; i < l; i++ )
elems[ i ].style.visibility = 'hidden';
Pero no me sale combinar ambas funciones.

Agradecería alguna indicación.
  #5 (permalink)  
Antiguo 28/03/2018, 19:57
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Condicional cuando imagen dentro de clase

function isBGimg(obj,i){
var img = obj.style.backgroundImage;
var spl = img.split("/");
img = spl[spl.lenght-1];
img = img.substring(0,-3); //remove: ');
if(img == i){ return true; }
return false;
}

Prueba con eso esa funcion debería darte true si la bg es es la misma que i

El parametro obj toma el objeto a verificar
  #6 (permalink)  
Antiguo 29/03/2018, 17:47
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 4 meses
Puntos: 86
Respuesta: Condicional cuando imagen dentro de clase

El segundo código es más adecuado. Según el ejemplo que muestras el css está en línea, por lo que no se necesita leer el css computado.

En lugar de usar la propiedad visibility, usa backgroundImage y el método indexOf() para saber si existe el valor o no
https://developer.mozilla.org/es/doc...String/indexOf

Etiquetas: clase, condicional, java
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:19.