Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Celamar

removeChild

Recommended Posts

Olá pessoal,

eu tenho a seguinte tabela

 

...<tr id='1'> <td align='right'>Anexo:</td> <td><input type='file' name='arq[]' id='arq' value=''>		<input type='button' name='btn_del[]' id='btn_del[]' value='del' onclick='this.parentNode.parentNode.removeChild( this.parentNode);'> </td></tr><tr id='2'> <td align='right'>Anexo:</td> <td><input type='file' name='arq[]' id='arq' value=''>		<input type='button' name='btn_del[]' id='btn_del[]' value='del' onclick='this.parentNode.parentNode.removeChild( this.parentNode);'> </td></tr>...se repete

Eu quero que, ao clicar no botao "del" ele elimine apenas esta linha que pertence ao botao (<tr id='x'>), mas esta excluindo todas as linhas.

 

Tem como eu passar por paramentro qual "id" eu quero que ele exclua?

 

Value

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

Já tentei:

 

onclick=var tr=document.getElementById(1); tr.parentNode.removeChild(tr);

Mas ocorre o erro : Objeto esperado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não utilize o removeChild em tabelas. Esse elemento possuí métodos de manipulação específicos.

Testa o script abaixo e adapta ao seu caso:

 

<html>	<head>		<title>Fórum</title>		<script type="text/javascript">			function DeleteRow(e){				try{var element = e.target		  }catch(er){};				try{var element = event.srcElement  }catch(er){};							element.parentNode.parentNode.parentNode.deleteRow(element.parentNode.parentNode.rowIndex);						}			   			window.onload = function(){				document.getElementById('b1').onclick = DeleteRow;				document.getElementById('b2').onclick = DeleteRow;				document.getElementById('b3').onclick = DeleteRow;			}		</script>	</head>	<body>		<table border='1'>			<tr>				<td>					<input type="button" id="b1"  value="Botão 1" />				</td>			</tr>			<tr>				<td>					<input type="button" id="b2" value="Botão 2" />				</td>			</tr>			<tr>				<td>					<input type="button" id="b3" value="Botão 3" />				</td>			</tr>					</table>	</body> </html>
FONTE: W3SCHOOLS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo, pq as linhas sao criadas dinamicamente depois de carregar o form, elas são criadas quando eu clique em um outro botao (Add).

A partir deste momento (Add), é que eu vou ter meus "b1, b2, b3, etc".

 

Por este motivo ele ja da erro na parte:

 

window.onload = function(){	document.getElementById('b1').onclick = DeleteRow;}

Pois eu ainda não tenho b1.

 

Teria que fazer no onclick do botao dinamico e na funcao acima um loop talvez...

Só que eu nao sei como fazer isso, sou bastante leiga em javascript.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

...

Testa o script abaixo e adapta ao seu caso:

...

Como eu disse, TESTA e ADAPTA... pois o script funciona.

O fórum deve ser utilizado para conseguir uma base para resolver seus problemas, porém a solução deve partir de você.

Não procure obter soluções prontas para copiar e colar.

 

PS: A única coisa que muda do exemplo para a solução é o evento onde o handle dos botões será atribuído.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.