Ir para conteúdo

POWERED BY:

Arquivado

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

PVBP

mudar id no IE

Recommended Posts

pessoal, mais uma vez venho com uma dúvida qto a recursos q funcionam no FF mas naum funcionam no IE, tentei usar a busca, mas n encontrei nd a respeito,

bom é o seguinte eu estou tentando mudar o id d um campo usando as seguintes linhas d codigo:

var campo = window.document.getElementById("nomeCampo");campo.id = "newId";
só que no IE não acontece nada no id do campo.

Detalhe essa rotina eh realizada a cada vez q aperta-se um botão na tela, da primeira vez até funciona, mas a partir da segunda ele passa a não alterar os ids dos campos.

Alguém sabe oq pode estar acontecendo?

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixi cara.. ateh onde eu sei.. o ie naum reconhece nenhum setAttribute, para setar atributos no ie tem q acessar o atributo diretamente no objeto, por isso usei objeto.id="teste"; entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh pessoal... teste aqui o setAttribute mas naum funcionou naum.no FF funciona perfeitamente as iteraçõessoh esse IE q tah me fazendo passar raiva :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se você mudar o id de um objeto, o id atual some, e no lugar entra o novo... depois quando voce for repetir essa função precisa usar o novo id, pra trocar por um id mais novo ainda... porque se tentar usar o primeiro id, ele não existe mais...

 

 

fiz agora aqui e só testei no FF e no IE7

 

<HTML><HEAD><TITLE>trocar id</TITLE></HEAD><BODY><div id="teste"> teste </div> <!-- Essa é a div a ter id alterado --><BR><input type="button" value="trocar" onclick="trocar(id_tmp);"> <!-- Ao clicar nesse botão executa o código embaixo, repare no parâmetro, uma variavel temporaria --><script>id_tmp="teste"; //variavel temporaria, aqui voce coloca o primeiro id da div, que já existe...function trocar(idb){	id_novo="teste"+Math.floor(Math.random()*50); //gera um texto aleatório pra substituir o antigo id... voce deve usar outra técnica	id_tmp=document.getElementById(idb).id=id_novo; //atribui o novo id ao id antigo, e o armazena na variavel id_tmp	alert(document.getElementById(id_novo).id); //alerta pra ver se tá funcionando...}</script></BODY></HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal... o q eu to fazendo é o seguinte,

na tela eu tenho um conjunto de campos como array da seguinte maneira:

<table>	<tr id="linha0">		 <td>			  <input type="text" name="campo[0]" id="campo[0]"/>		 </td>	</tr>	<tr id="linha1">		 <td>			  <input type="text" name="campo[1]" id="campo[1]"/>		 </td>	</tr>	<tr id="linha2">		 <td>			  <input type="text" name="campo[2]" id="campo[2]"/>		 </td>	</tr>

agora oq eu faço no javascript é o sequinte,

existe um botão na tela que exclui a primeira linha da tabela, então eu tenho que excluir a linha e reorganizar os índices

então eu tenho uma função que retorna o ultimo indice da tela e a minha função que reorganiza os ids que é a seguinte:

function reorganiza (total){	for(var i=1; i<=total; i++){		 var idReal = i-1;		 		 var linha = window.document.getElementById("linha"+i);		 linha.name="linha"+idReal;		 linha.id="linha"+idReal;		 var campo = window.document.getElementById("campo["+i+"]");		 campo.name="campo["+idReal+"]";		 campo.id="campo["+idReal+"]";	}}
entaum, essa fnção funciona perfeitamente no FF e no IE funciona na primeira exclusão, mas a partir da segunda chamada já da pau.

Obs: eu to usando a função deleteRow antes de chamar a função pra deletar a linha então quando entra em reorganiza ja não existe o campo com índice 0

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.