Foros del Web » Programando para Internet » Javascript »

cómo quitar imágenes y tablas de una capa

Estas en el tema de cómo quitar imágenes y tablas de una capa en el foro de Javascript en Foros del Web. Buenas, estoy tratando de quitar las imágenes y tablas de una capa pero no he podido. Mirando algunas páginas intenté hacerlo por medio de replace ...
  #1 (permalink)  
Antiguo 27/06/2010, 17:13
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Información cómo quitar imágenes y tablas de una capa

Buenas, estoy tratando de quitar las imágenes y tablas de una capa pero no he podido.

Mirando algunas páginas intenté hacerlo por medio de replace y expresiones regulares pero no me ha salido.
Otra cosa que intento es que no involucre los IDs de las imágenes o tablas porque pueden variar mucho.

Mi código Javascript es:
Código Javascript:
Ver original
  1. function limpiar(pID){
  2.    var capa = document.getElementById(pID);
  3.    var cadenaA = capa.innerHTML;
  4.    cadenaA = cadenaA.replace(/<style[^>]*>[^<]*<\/style>/im, '');
  5.    cadenaA = cadenaA.replace(/<table[^>]*>[^<]*<\/table>/im, '');
  6.    cadenaA = cadenaA.replace(/<img[^>]*>/im, '');
  7.    capa.innerHTML=cadenaA;
  8. }

Y en una de las capas tengo:
Código HTML:
Ver original
  1. <div id="s123456789">
  2. <style type="text/css">
  3.       .
  4.       .
  5.       .
  6. <table id="imagenes">
  7.    <tr><td><img src="http://midominio.com/miimagen.jpg" width="100px"></td></tr>
  8.       .
  9.       .
  10.       .
  11.    <tr><td>Click en cada una para agrandar.</td></tr>
  12. </div>

Cuando ejecuto limpiar(s123456789); elimina las imágenes y las etiquetas STYLE con su contenido pero la estructura de la tabla queda intacta y tambien el texto de la última fila.

Quisiera saber si existe un otro método más eficaz o si se puede arreglar mo código para que haga lo que necesito. Muchas gracias.
  #2 (permalink)  
Antiguo 27/06/2010, 18:03
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: cómo quitar imágenes y tablas de una capa

intentalo con metodos DOM. basicamente tienes que buscar el elemento TABLE y STYLE dentro de la capa (getElementsByTagName) y luego los remueves (removeChild).
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 27/06/2010, 23:15
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Respuesta: cómo quitar imágenes y tablas de una capa

Hola zerokilled, intenté lo que me dijiste pero no resultó nada, ahora mi código quedó así:

Código Javascript:
Ver original
  1. function limpiar(pID){
  2.     var capa = document.getElementById(pID);
  3.     var Imgs = capa.getElementsByTagName("img");
  4.     if (Imgs.length > 0){
  5.         for (i = 0; i < Imgs.length; i++){
  6.             capa.removeChild(Imgs[i]);
  7.         }
  8.     }
  9.  
  10.     var Tablas = capa.getElementsByTagName("table");
  11.     if (Tablas.length > 0){
  12.         for (t = 0; t < Tablas.length; t++){
  13.             capa.removeChild(Tablas[t]);
  14.         }
  15.     }
  16. }
y cuando llamo a la función, el Developer Tools de Google Chrome me lanza el error:
NOT_FOUND_ERR: DOM Exception 8
en la línea:
capa.removeChild(Imgs[i]);

y no cambia nada en las capas.

¿Me podrían ayudar? Disculpen la molestia.
  #4 (permalink)  
Antiguo 27/06/2010, 23:24
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: cómo quitar imágenes y tablas de una capa

lo mas seguro es porque #capa no es el elemento padre directo del elemento que deseas remover. tienes que acceder al elemento padre del elemento a remover y desde este invocar removeChild.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 27/06/2010, 23:45
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: cómo quitar imágenes y tablas de una capa

Listo, ya me salió pero con un defecto. En una de las capas tengo 10 imágenes y sólo elimina la primera, la tercera, la quinta, la septima y la novena Edité el código según me dijiste y quedó así:
Código Javascript:
Ver original
  1. function limpiar(pID){
  2.     var capa = document.getElementById(pID);
  3.     var padre;
  4.     var Imgs = capa.getElementsByTagName("img");
  5.     if (Imgs.length > 0){
  6.         for (var i = 0; i < Imgs.length; i++){
  7.             //obtiene el padre
  8.             padre = Imgs[i].parentNode;
  9.             padre.removeChild(Imgs[i]);
  10.         }
  11.     }
  12.  
  13.     var Tablas = capa.getElementsByTagName("table");
  14.     if (Tablas.length > 0){
  15.         for (var t = 0; t < Tablas.length; t++){
  16.             //obtiene el padre
  17.             padre = Tablas[t].parentNode;
  18.             padre.removeChild(Tablas[t]);
  19.         }
  20.     }
  21. }
ahora no hay error ni nada pero como te dije, solo borra la primera imagen.

¿qué puede estar pasando? ¿será por el ciclo?

Última edición por YaGrEoR; 27/06/2010 a las 23:55 Razón: No observé bien
  #6 (permalink)  
Antiguo 28/06/2010, 00:47
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: cómo quitar imágenes y tablas de una capa

si, es por el ciclo y el HTMLCollection ya que este último son activos. lee este mensaje -o el tema completo- del tema problema con getelementbytagname.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 28/06/2010, 01:04
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: cómo quitar imágenes y tablas de una capa

Cita:
Iniciado por zerokilled Ver Mensaje
si, es por el ciclo y el HTMLCollection ya que este último son activos. lee este mensaje -o el tema completo- del tema problema con getelementbytagname.
SIIIII!!! me sirvió, problema resuelto xD
¡Muchas gracias!

Etiquetas: imagenes, quitar, capas
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:20.