Estou precisando remover uma linha, de uma tabela, que contêm elementos criados dinamicamente pelo javascript, através do idda linha, acontece que ele está removendo apenas a última linha adicionada. Não conheço muito de DOM, por isso estou com dúvidas na sua sintaxe. Gostaria que alguém me ajudasse. Abaixo, o código:
Desde já, muito obrigada!
<html>
<head>
<script language="JavaScript" type="text/javascript">
var input_cont = 2;
//**********************************************************************************************
//********************************* INICIA A FUNÇÃO PARA ADICIONAR ITENS ***********************
//***********************************************************************************************
function addItem(){
add_item_div = document.getElementById('add_item_div');
linha = new Array();
coluna1 = new Array();
coluna2 = new Array();
coluna3 = new Array();
linha2 = new Array();
coluna12 = new Array();
//Cria os elementos para construção da tabela
table = document.createElement("table");
linha[input_cont] = document.createElement("tr");
coluna1[input_cont] = document.createElement("td");
coluna2[input_cont] = document.createElement("td");
coluna3[input_cont] = document.createElement("td");
linha2[input_cont] = document.createElement("tr");
coluna12[input_cont] = document.createElement("td");
// Define propriedades da tabela
table.setAttribute('border','1');
coluna1[input_cont].setAttribute('width', '18');
coluna1[input_cont].setAttribute('align', 'center');
coluna1[input_cont].setAttribute('bgcolor', '#F4FDF8');
table.setAttribute('width', '995');
coluna12[input_cont].colSpan = '15';
linha[input_cont].setAttribute('id', 'linha_' + input_cont );
//******************************** CRIA TEXT
new_txt = document.createTextNode(input_cont);// cria o conteúdo da célula
new_rec = document.createTextNode('Reconstituição');// cria o conteúdo da célula
//******************************** Cria BOTÃO para EXCLUIR
btn_excluir = document.createElement("img");
btn_excluir.setAttribute('name', 'btn_excluir');
btn_excluir.setAttribute('id', 'excluir_' + input_cont);
btn_excluir.setAttribute('onclick', 'java script:deletaCampo('+input_cont+')');
btn_excluir.setAttribute('style', 'width:25px; height:20px; cursor:pointer');
btn_excluir.setAttribute('src', 'lixeira_3.png')
btn_excluir.setAttribute('title', 'Excluir Item')
//********************************* Cria INPUT para ESQUEMA
new_esquema = document.createElement('input');
new_esquema.setAttribute('type', 'text');
new_esquema.setAttribute('name', 'esquema_'+input_cont);
new_esquema.setAttribute('id', 'esquema_'+input_cont);
new_esquema.setAttribute('value', '');
new_esquema.setAttribute('size', '5');
//add_item_div.appendChild(new_input);
//********************************* Cria SELECT para ÍTEM
a_item = new Array( "Selecione..." , "Item 1" , "Item 2" , "Item 3");
new_item = document.createElement( 'select' );
new_item.setAttribute( 'name' , 'item_' + input_cont );
new_item.setAttribute( 'id' , 'item_' + input_cont );
new_item.setAttribute( 'style' , 'width:95');
//add_item_div.appendChild( new_select );
meuSelect = document.getElementById( 'item' + input_cont);
for ( var i = 0; i <= 3; i++ )
{
newOption = document.createElement( 'option' );
newOption.setAttribute( 'value' , a_item[i] );
newOption.innerHTML = a_item[i];
new_item.appendChild( newOption );
}
//********************************* Cria SELECT para CÓDIGO
a_codigo = new Array( "Selecione..." , "Código 1" , "Código 2" , "Código 3");
new_codigo = document.createElement( 'select' );
new_codigo.setAttribute( 'name' , 'codigo_' + input_cont );
new_codigo.setAttribute( 'id' , 'codigo_' + input_cont );
new_codigo.setAttribute( 'style' , 'width:95');
//add_item_div.appendChild( new_select );
meuSelect = document.getElementById( 'codigo' + input_cont );
for ( var i = 0; i <= 3; i++ )
{
newOption = document.createElement( 'option' );
newOption.setAttribute( 'value' , a_codigo[i] );
newOption.innerHTML = a_codigo[i];
new_codigo.appendChild( newOption );
}
//********************************* Cria INPUT para RECONSTITUICAO
new_reconstituicao = document.createElement('input');
new_reconstituicao.setAttribute('type', 'text');
new_reconstituicao.setAttribute('name', 'reconstituicao_'+input_cont);
new_reconstituicao.setAttribute('id', 'reconstituicao_'+input_cont);
new_reconstituicao.setAttribute('value', '');
new_reconstituicao.setAttribute('size', '145');
tbody = document.createElement("tbody");
//coluna1.innerHTML = input_cont;
//campo2.innerHTML = "Campo da tabela ";
// Atribui as colunas dentro de cada linha e o seu conteúdo
linha[input_cont].appendChild(coluna1[input_cont]);
coluna1[input_cont].appendChild(new_txt);
coluna1[input_cont].appendChild(btn_excluir);
linha[input_cont].appendChild(coluna2[input_cont]);
coluna2[input_cont].appendChild(new_esquema);
linha[input_cont].appendChild(coluna3[input_cont]);
coluna3[input_cont].appendChild(new_item);
linha2[input_cont].appendChild(coluna12[input_cont]);
coluna12[input_cont].appendChild(new_rec);
coluna12[input_cont].appendChild(new_reconstituicao);
// Associa a tabela ao corpo da página
tbody.appendChild(linha[input_cont]);
tbody.appendChild(linha2[input_cont]);
table.appendChild(tbody);
add_item_div.appendChild(table);
input_cont++;
}
//**********************************************************************************************
//********************************* FIM DA FUNÇÃO PARA ADICIONAR ITENS ***********************
//**********************************************************************************************
function deletaCampo(id){
alert(id)
if (add_item_div.childNodes.length != 0){
alert('Tem Nodes')
}
else
alert('Não tem Nodes')
tbody.removeChild(linha[id]);
tbody.removeChild(linha2[id]);
table.removeChild(tbody);
// add_item_div.removeChild(table);
}
function countTags(n){
var numtags = 0;
if(n.nodeType ==1)
numtags++;
var children = n.childNodes;
for( var i=0; 1< children.legth; i++){
numtags += countTags(children[i]);
}
return numtags;
}
//alert(countTags(document))
</script>
<link rel="stylesheet" href="estilo.css" type="text/css">
</head>
<body onLoad="alert(countTags(document))">
<form method="post" name="frm" id="frm" action="">
<div id="add_item_div"></div>
<center><input type="button" value="Adicionar Ítem" name="add_input" id="add_input" onClick="addItem()" class="btn_acoes"/></center>
</form>
</body>
</html>
Pergunta
Thabata Sá
Boa tarde pessoal,
Estou precisando remover uma linha, de uma tabela, que contêm elementos criados dinamicamente pelo javascript, através do idda linha, acontece que ele está removendo apenas a última linha adicionada. Não conheço muito de DOM, por isso estou com dúvidas na sua sintaxe. Gostaria que alguém me ajudasse. Abaixo, o código:
Desde já, muito obrigada!
Editado por Thabata SáLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.