Ir para conteúdo

POWERED BY:

Arquivado

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

Bravanet

[Resolvido] getElementByID() has no properties

Recommended Posts

Pessoal estou com um problema no javascript abaixo, fiz está função para exibir e ocultar colunas de uma tabela. O código funciona porém da um erro tanto no IE quanto no Firefox.

 

Erro no IE: Objeto Necessário

Erro no FF: Has no properties

 

Segue o código abaixo:

 

<script language="JavaScript" type="text/javascript">function Show(c,n) {	for (i=0; i<=n; i++ ) {		var id_div = c + i			document.getElementById(id_div).style.display = "block";	}}function Hide(c,n) {	for (i=0; i<=n; i++ ) {		var id_div = c + i			document.getElementById(id_div).style.display = "none";	}}</script>

E para chamar a função eu faço o seguinte:

 

<table width="70%" align="center">	<tr>		<td><b>Opções de Exibição:</b></td>		<td><input type="checkbox" id="pntsts" onclick="if(this.checked==true){ Show('PS',288);}else{Hide('PS',288);}" />Point Status</td>		<td><input type="checkbox" id="evtsts" onclick="if(this.checked==true){ Show('EV',288);}else{Hide('EV',288);}" />Event Status</td>		<td><input type="checkbox" id="comsts" onclick="if(this.checked==true){ Show('CM',288);}else{Hide('CM',288);}" />Com. Status</td>	</tr></table>

Alguém sabe onde pode estar o erro?

 

Obrigado,

 

Júnior

Compartilhar este post


Link para o post
Compartilhar em outros sites

na tua pagina existe 288 elementos PS, e 288 elementos EV mais 288 elementos CM? Sendo eles:PS0 até PS288EV0 até EV288CM0 até CM288

Isso, exatamente assim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

com certeza absoluta o erro está na variavel id_dir. coloque um alert(id_dir) e veja se existem algum elemento no seu codigo com o nome que irá aparecer. provavelmente não terá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem Bravanet, vendo aqui creio que o id_div é o id da div né. Se for isso coloca esse nome em aspas simples

 

Desse jeito.

document.getElementById('id_div')
separa esse paramentro em uma variavel e depois coloque a ação nele.

 

Esse foi o que você fez

document.getElementById(id_div).style.display = "block";
Coloca desse jeito

campo = document.getElementById('id_div');campo.style.display = "block";
Ve se ajuda.

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

com certeza absoluta o erro está na variavel id_dir. coloque um alert(id_dir) e veja se existem algum elemento no seu codigo com o nome que irá aparecer. provavelmente não terá.

Já coloquei e aparece os valores, está tudo correto, tanto é que o script funciona... mais da o erro!

 

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

Post Mesclado

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

 

Bem Bravanet, vendo aqui creio que o id_div é o id da div né. Se for isso coloca esse nome em aspas simples

 

Desse jeito.

document.getElementById('id_div')
separa esse paramentro em uma variavel e depois coloque a ação nele.

 

Esse foi o que você fez

document.getElementById(id_div).style.display = "block";
Coloca desse jeito

campo = document.getElementById('id_div');campo.style.display = "block";
Ve se ajuda.

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Vitor id_div é o nome de uma var por isso não está entre aspas. ok? Mais mesmo assim obrigado pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é a linha do erro?

As linhas que estão em negrito...

 

<script language="JavaScript" type="text/javascript">

function Show(c,n) {

for (i=0; i<=n; i++ ) {

var id_div = c + i

document.getElementById(id_div).style.display = "block";

}

}

 

 

function Hide(c,n) {

for (i=0; i<=n; i++ ) {

var id_div = c + i

document.getElementById(id_div).style.display = "none";

}

}

</script>

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nessas linhas eu não vi nenhum erro. Não tem como você postar a página que o script está funcionando?Normalmente o erro no uso do for, é iniciar a contagem com o zero e no html começar os ids com 1, e vice-versa. Ou não ter no html a seqüência dos números, a falta de um. Mas não acho que esse seja o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bravanet....vendo agora acho que o problema é o seguinte....quando você acrescenta dois valores na variavel id_div creio que o getElementById() nao conseguei identificar o id do campo....faz um teste....tira essa variavel id_div = c + i e coloca apenas a id do campo onde você quer que aconteça esse style....ve se isso ajudaAbraços :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com o Lex, não vejo nenhum erro no código. para podermos lhe ajudar seria de muita utilidade termos o codigo fonte da pagina ou um link para onde a pagina está hospedada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido!O que ocorria é o seguinte... eu dizia que tinha 288 linhas então o for fazio 288, mais... 288 era o número máximo e nem sempre tinha 288 era ai então que dava o erro! Desculpem a virgindade!Abraço e Obrigado e Todos!JR.

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.