Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] obtener/devolver nombre de imágenes

Estas en el tema de obtener/devolver nombre de imágenes en el foro de Javascript en Foros del Web. hola a todos... esta consulta la posteé previamente, como respuesta a una pregunta similar, pero el post era viejo y parece que ya nadie lo ...
  #1 (permalink)  
Antiguo 05/05/2014, 22:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
obtener/devolver nombre de imágenes

hola a todos... esta consulta la posteé previamente, como respuesta a una pregunta similar, pero el post era viejo y parece que ya nadie lo ve...

necesito hacer lo siguiente:
tengo un documento html, con varias imágenes y necesitaría incorporar un script, que LEA el nombre de cada una de las imágenes y las agregue al pie de cada una... sin la extensión.

o sea... tomar de cada <img src="IMAGE 01.jpg" /> sólo el "IMAGE 01" y agregarlo al pié (puede ser en otro div o celda...
es posible?? o será mucho pedir? jejejejeje

gracias de antemano, aunque sea por leer mi pregunta!!
espero alguien pueda ayudarme,
  #2 (permalink)  
Antiguo 06/05/2014, 01:15
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: obtener/devolver nombre de imágenes

Solamente tienes que tomar a todos los elementos <img> ya sea por el nombre de la etiqueta (img) o la clase (class), lo cual generaría una lista de nodos. Luego, recorres dicha lista y en cada iteración, obtienes el valor del atributo src y lo colocas en donde desees. Para obtener el nombre sin la extensión, delimita la cadena con el método substring.

Código Javascript:
Ver original
  1. var imagenes = document.getElementsByTagName("img"),
  2.     labels = document.getElementsByTagName("label"),
  3.     totalImg = imagenes.length;
  4.  
  5. for (i = 0; i < totalImg; i++){
  6.     var src = imagenes[i].src;
  7.     labels[i].innerHTML = src.substring(src.lastIndexOf("/") + 1, src.lastIndexOf("."));
  8. }

En este ejemplo, asigno los nombres de las imágenes a elementos <label> que coloco justo debajo de cada imagen. Como la ruta de la imagen contiene barras inclinadas y como solo quiero tomar solamente el nombre, tomo el fragmento de la ruta que va desde una posición adelante de la última barra inclinada hasta antes del punto correspondiente a la extensión, para lo cual utilizo el método lastIndexOf.



Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 06/05/2014, 02:13
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: obtener/devolver nombre de imágenes

Sr. Alexis88... MONSTRUOSO LO SUYO!! y con qué simplicidad lo explicás! jajajaaaa
I-M-P-E-C-A-B-L-E!!

ahora se me presenta un problema... y es que la mayoría de las imágenes (por no decir todas) tienen ESPACIOS en sus nombres (ej: IMAGE 01.jpg) y el script me devuelve un "%20" por cada espacio que encuentra en el nombre...
es posible resolver esto, de manera que se visualice el nombre de la imagen con el espacio, como corresponde y tal cual está archivada?

no me voy a ir sin agradecerte MUCHO!!
y espero puedas ayudarme con este detalle con el que me he encontrado...
  #4 (permalink)  
Antiguo 06/05/2014, 02:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: obtener/devolver nombre de imágenes

Cambia la línea en donde asigno el contenido a cada <label> por esta:

Código Javascript:
Ver original
  1. labels[i].innerHTML = src.substring(src.lastIndexOf("/") + 1, src.lastIndexOf(".")).replace(/%20/g, " ");

Con el método replace, reemplazo todos los "%20" que hayan por espacios.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 06/05/2014, 02:36
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: obtener/devolver nombre de imágenes

bueno... qué puedo decir?? qué más puedo pedir? jajjajaaaa
sos GROSSO, pero de verdad!

muchísimas gracias!! resolviste todos mis problemas y con una precisión impecable!
ya volveré pronto por aquí, a molestar con mis dudas!

MUCHAS GRACIAS!! =)
  #6 (permalink)  
Antiguo 06/05/2014, 02:43
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: obtener/devolver nombre de imágenes

Como consejo final, sería mejor que a los elementos <img> y <label> que desees afectar, les asignes una clase (atributo class), para que el código que te mostré, no afecte a elementos <img> y <label> que no tengan nada que ver con este proceso. Lo único que cambiaría sería la forma de tomar a los elementos, en lugar del método getElementsByTagName, utilizarías el método getElementsByClassName, mientras que entre los paréntesis y comillas, iría el nombre de la clase.

No olvides marcar el tema como solucionado para que aquellos usuarios que tienen el mismo problema que tuviste al inicio, sepan que aquí pueden encontrar una solución.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 06/05/2014, 02:59
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: obtener/devolver nombre de imágenes

buenísimo Alexis88!! tendré en cuenta tus acertadas sugerencias!
MUCHÍSIMAS GRACIAS!

Etiquetas: html, nombre
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 03:22.