Ir para conteúdo

POWERED BY:

Arquivado

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

WFJ

childNodes no IE

Recommended Posts

Boa tarde pessoal,

 

Estou com um problema no IE 7 e acredito que também esse problema esteja acontecendo nas outras versões do mesmo, se tratando de IE nada funciona.

 

Tenho a sequinte estrutura html:

 

<div id="id_da_div">
 
  <ul>
	
	 <li> 2 </li>
	 <li> 0 </li>
	 <li> 14 </li>

  </ul>


</div>

Por que esse código javascript não acessa os valores dentro da estrutura acima no IE e nos outros browsers como Firefox , Safari, Chrome funciona perfeitamente?

 

elemento = document.getElementById(id_da_div);

	elemento_filho_1 =  parseInt(elemento.childNodes[1].childNodes[5].innerHTML);
	elemento_filho_2 =  parseInt(elemento.childNodes[1].childNodes[3].innerHTML);
	elemento_filho_3 =  parseInt(elemento.childNodes[1].childNodes[1].innerHTML);
Alguém saberia me dizer a magia que se deve utilizar no IE para ele entender isso?

 

Ele não entende o caminho elemento.childNodes[1].childNodes[5].innerHTML para todos eles.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Talvez o problema seja do childNode estar a ser utilizado duas vezes. Experimente colocar essa ID no ul e só com um childNode (li) e diga se resultou. Neste momento não tenho maneira em como testar.

 

Cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala ae amigo beleza ?

 

Tem modo mais proximo do resultado q você espera.

 

Tente assim:

 

elemento = document.getElementById(id_da_div);

var lis = elemento.getElementsByTagName("li");

for (i=0; i<lis.length;i++)
var element_filho_[i]=parseInt(lis[i].innetHTML);

Explicação:

O FF e o IE interpretam nós diferentemente, tipo, se você endentar o seu código, o espaço entre uma tag e a outra o FF reconhece como nó e o IE não,

Portanto se você por assim:

<p>
	 <b></b>
</p>

O FF entende que tem 2 filhos e o IE entende que tem apenas 1 , se você tirar o "enter" e o espaço em branco e deixar tudo em uma linha só "<p><b></b></p>" os 2 reconhecem da mesma maneira saca ?

 

Não sei se expliquei mt bem, mas de uma procurada sobre isso..

 

abssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Dessa não sabia :o, os espaços também são interpretados como filhos :D.

 

Cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

tive um problema parecido...

em vez de usar childNodes, use o chidren, usando a mesma estrutura

 

elemento_filho_1 =  parseInt(elemento.chidren[1].chidren[5].innerHTML);
elemento_filho_2 =  parseInt(elemento.chidren[1].chidren[3].innerHTML);
elemento_filho_3 =  parseInt(elemento.chidren[1].chidren[1].innerHTML);

ele não considera espaços em branco e se não me engano nem quebra de linha, por causa disso, os indices iram mudar, é bom ter um html inspect como o firebug ou o opera dragonfly pra verificar os indices

eu acho um saco colocar id em todos os elementos da página XP

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.