Foros del Web » Programando para Internet » Javascript »

Borrar Elementos creados con DOM

Estas en el tema de Borrar Elementos creados con DOM en el foro de Javascript en Foros del Web. Hola a todos los foreros, nuevamente molestando, estoy desarrollando una web, y para ello estoy implementando algunas funcionalidades de la misma con DOM, paso a ...
  #1 (permalink)  
Antiguo 07/02/2007, 07:05
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Borrar Elementos creados con DOM

Hola a todos los foreros, nuevamente molestando, estoy desarrollando una web, y para ello estoy implementando algunas funcionalidades de la misma con DOM, paso a explicar mejor. utilizo un codigo para crear una tabla com dom y sus botones respectivos, hasta qui todo bien, este es el codigo que utilizo:
Código:
function crearCeldaInput(TBody, Columnas){
  var elmTBODY = document.getElementById(TBody);
  var elmTR;
  var elmTD;
  var elmText;
  var elmButton;  
  var Titulo;
  var Ancho;
  var Item=0;
  var ItemButton=0;
  var Manejador;
  var Estado;
	elmTR = document.createElement('TR');
	 for (Item = 0; Item <= Columnas; Item++) { 
		elmTD = document.createElement('Td');	
		elmTD.setAttribute("bgcolor", '#EFF8F1');
		if (Item<Columnas){
			switch(Item){
				case 0: Ancho=48; break;
				case 1: Ancho=33; break;					
				case 2: Ancho=2; break;				
			}

			elmText = document.createElement('input');	
			elmText.setAttribute('name', 'txtdato');
			elmText.setAttribute('id', 'txtdato'+ ContadorFilas + Item);
			arrFilas[arrFilas.length]=ContadorFilas;
			elmText.size = Ancho;
			elmTD.width = Ancho;			
	        elmTD.appendChild(elmText);						
		} 
		if (Item==Columnas){
			for (ItemButton=0; ItemButton<3; ItemButton++){
				elmButton = document.createElement('input');
				elmButton.setAttribute('type', 'button');
				elmButton.setAttribute('name', 'btnOpcion');				
				elmButton.setAttribute('id', 'btnOpcion'+ ContadorFilas + ItemButton);	
				//elmButton.setAttribute('data', ContadorFilas);
				switch(ItemButton){
					case 0: 
						Titulo="M"; 
						Manejador = modificarHermano;	
						Estado = true;
						break;
					case 1: 
						Titulo='G'; 
						Manejador = guardarHermano;
						Estado = false;
						break;					
					case 2: 
						Titulo='E'; 
						Manejador = eliminarHermano;				
						Estado = true;
						break;				
				}
				elmButton.addEventListener('click', Manejador, true);
			
				elmButton.setAttribute('value', Titulo);
				elmTD.appendChild(elmButton);					
			}
		}	
		elmTR.appendChild(elmTD);
     }
     elmTBODY.insertBefore(elmTR,elmTBODY.childNodes[Columnas]);
	 //elmTBODY.appendChild(elmTBODY.childNodes[Columnas]);
	 alert(elmTBODY.length);
	 ContadorFilas++;
	 Item=0;
	 ItemButton=0;
	 Nodos++;
	 if (ContadorFilas>0){
		 restaurarOpciones();
	 }
}
como dije, hasta aqui todo bien el problema surge cuando intento borrar los Elementos creados, para ello utilizo este codigo:
Código:
function quitarCelda(Componente, ID){
	//elmTBODY.removeChild(elmTBODY.childNodes[ID]);
	document.getElementById(Componente).removeChild(document.getElementById(Componente).childNodes[ID]);
}
todo bien hasta aqui, ya que si deseo eliminar uno por uno los elementos creado me funciona, el detalle surge al momento de borrar todo de una sola vez, para ello implemente un boton que me permitiera hacer esto, y para ello utilizo el siguiente codigo:
Código:
function quitarLista(){
	var Indice=0;	
	if (ContadorFilas==0){ return; }
	//alert("com"+ContadorFilas);
//	
	//alert(document.getElementById());
	//document.getElementById(Componente).removeChild(document.getElementById(Componente).childNodes[ID]);	
	//alert(document.getElementById('CuerpoTabla').length)
	for (Indice = ContadorFilas; Indice >=0; Indice--){
		//alert("aaa"+Indice);		
		quitarCelda('CuerpoTabla', Indice);
	}
	ContadorFilas=0;
	alert(ContadorFilas);
	return;
}
Bueno, cuando ejecuto todo la primera vez funciona, todo ok, explico la forma como lo ejecuto:
1. cargo la pagina
2. creo los elementos de la tabla (text y botones)
3. cancelo (la opcion que me debe borrar todo los elementos creados en paso 2)
4. vuelvo a crear los elementos.
5. vuelvo a cancelar, y es a qui donde surge el problema que simplemente ya no borra.
ahora si me dicen por que utilizo el for en reversa, bueno es que elimino desde el ultimo, lo use de forma ascendente, pero siempre me quedaba uno y si volvia agregar me quedaba dos, y asi, al final me quedaba algun elemento creado extra, alguien que sepa como poder eliminar este problema de ante mano gracias por su ayuda, seguie investigando tambien
  #2 (permalink)  
Antiguo 08/02/2007, 11:37
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: Borrar Elementos creados con DOM

Hola, nadie me puede ayudar......
  #3 (permalink)  
Antiguo 08/02/2007, 13:17
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Borrar Elementos creados con DOM

Para borrar todos las filas uso este codigo:

Código PHP:
var tbody document.getElementById('tbodytabla');
var 
filas=tbody.rows.length;
var 
i;

for(
i=filas-1;i>=0;i--)
{
elmTBODY.deleteRow(i);

Y con esto me borra todos los campos
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 20:32.