ProPixel

Participe do fórum, é rápido e fácil

ProPixel
ProPixel
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
Koily
Koily
Coordenador

<b>Idade</b> Idade : 29
<b>Posts</b> Posts : 4744
<b>Créditos</b> Créditos : 250
<b>Respeito</b> Respeito : 36
Foco, força e fé.
Warning : Caminhando pelo DOM ZsaKMOb
O Dom representa a maneira como os navegadores web enxergam o documento HTML. Após carregar o documento o navegador monta uma estrutura de árvore na memória e a partir daí podemos manipulá-lo a vontade. O JavaScript assim como outras linguagens, possui uma série de funções para criar, excluir e alterar os elementos da árvore. O DOM não serve apenas para documentos HTML, mas serve também para XML e outras linguagens de marcação. As aplicações baseadas em AJAX inevitavelmente utilizam o DOM para manipulação das resposta e organização dos elementos no documento. Abaixo temos um exemplo da estrutura que o navegador monta para exibir o documento.
Código:
<html>
  <head>
      <title>Trabalhando com o DOM</title> 
  </head>
  <body>
      <p>
        Este paragráfo contém um exemplo de
        <strong>texto em negrito</strong>
      </p>   
  </body>
</html>

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

Podemos observar :
O elemento HTML é o elmento raiz do documento;
  • HEAD e BODY são elementos filhos de HTML, e são irmãos entre si;
  • HEAD possui um filho, TITLE;
  • TITLE possui um filho do tipo texto;
  • Body possui um filho, P;
  • P possui dois filhos, STRONG e um elemento texto;
  • STRONG possui um filho, elemento texto, e um irmão também texto;


Os elementos podem ser do tippo nó ou do tipo texto.O nós são a Tags HTML, e texto são texto puro.
Vamos agora ver alguns métodos para caminhar pelo Documento

  • hasChildNodes, retorna true se o elemento possui filhos;
  • firstChild, retorna uma referência ao primeiro elemento filho;
  • lastChild, retorna uma referência ao último elemento filho;
  • nextSibling, retorna uma referência ao irmão posterior ao elemento;
  • previousSibling, retorna uma referência ao irmão anterior ao elemento;
  • nodeName, retorna o nome da TAG do elemento(apenas para elementos nó)
  • nodeValue, retorna o valor do elemento(apenas para elementos texto)
  • nodeType, retorna o tipo do elemento;
  • parentNode, retorna uma referência ao elemento pai.


Código:
<html>
  <head>
      <title>
        Trabalhando com o DOM     
      </title>
     
      <script>
        //nossas variáveis globais, que serão compartilhadas por todas as nossa funções
        var el;
        var nome;
        var tipo;
        var valor;
       
        function start()
        {
            el = document.documentElement; //pega o elemento HTML, raiz do documento
            nome = document.getElementById("nome"); //pega o elemento com o id nome
            tipo = document.getElementById("tipo"); //pega o elemento com o id tipo
            valor = document.getElementById("valor"); //pega o elemento com o id valor
            mostra();
          }
         
        function mostra() //exibe as informações
        {
            nome.value = el.nodeName;
            tipo.value = el.nodeType;
            valor.value = el.nodeValue;
        }
       
        function restart() //retorna para o elemento raiz
        {
            el = document.documentElement;
            mostra();
        }
       
        function primeiroFilho() // vai para o primeiro elemento filho
        {
            if(el.firstChild){
              el = el.firstChild;
              mostra();
            }
            else
                alert("O Elemento não possui filhos !"); 
        }
       
        function ultimoFilho() // vai para o último elemento filho
        {
            if(el.lastChild){
              el = el.lastChild;
              mostra();
            }
            else
                alert("O Elemento não possui filhos !"); 
        }
       
        function obterPai() // volta para o elemento pai
        {
            if(el.parentNode){
              el = el.parentNode;
              mostra();
            }
            else
                alert("O Elemento não possui Pai !"); 
        }
       
        function proximoIrmao() //vai para o irmão posterior
        {
            if(el.nextSibling){
              el = el.nextSibling;
              mostra();
            }
            else
                alert("O Elemento não possui um próximo irmão !"); 
        }
       
        function irmaoAnterior() //vai para o irmão anterior
        {
            if(el.previousSibling){
              el = el.previousSibling;
              mostra();
            }
            else
                alert("O Elemento não possui um irmão anterior !"); 
        }
       
      </script>
     
  </head>
 
  <body>
      <p>
        Este paragráfo contém um exemplo de
        <strong>
            texto em negrito
        </strong>
    </p>   
        <form>
            <fieldset>
              <input type="button" name="next" value="ProximoIrmao" onClick="proximoIrmao();" />
              <input type="button" name="prev" value="IrmaoAnterior" onClick="irmaoAnterior();" />
              <input type="button" name="parent" value="Pai" onClick="obterPai();" />
              <input type="button" name="first" value="PrimeiroFilho" onClick="primeiroFilho();" />
              <input type="button" name="last" value="UltimoFilho" onClick="ultimoFilho();" />
              <input type="button" name="reiniciar" value="Reiniciar" onClick="restart();" />
             


              Value :<input type="text" name="valor" id="valor" value="" size="65" />
             

              Type : <input type="text" name="tipo" id="tipo" value="" />
             

              Name:<input type="text" name="nome" id="nome" />
            </fieldset>
        </form>
     
  </body>
</html>
<script language="javascript">
  start();// inicia no elemento HTML, mas antes ele espera que todo o documento esteja carregada
</script>

E para finalizar essa nossa primeira parte, uma exemplo de como caminhar pelo documento recuperando informações sobre cada elemento, sinta-se a vontade para modificar o documento e veja como isso irá alterar a estrutura DOM. Na próxima parte iremos ver como manipular os atributos dos elementos.

Fonte: Oficina da Net
covital
covital
Membro VIP

<b>Idade</b> Idade : 27
<b>Posts</b> Posts : 2107
<b>Créditos</b> Créditos : 0
<b>Respeito</b> Respeito : 18
God damn asshole
Não tenho paciência pra ver,
eu não entendo muito.
Mas belo tutorial ;)
Koily
Koily
Coordenador

<b>Idade</b> Idade : 29
<b>Posts</b> Posts : 4744
<b>Créditos</b> Créditos : 250
<b>Respeito</b> Respeito : 36
Foco, força e fé.
Warning : Caminhando pelo DOM ZsaKMOb
Obrigado! O tutorial foi feito exatamente pra isso, você começar a entender. É meio que um começo.
LMRC
LMRC
Membro

<b>Idade</b> Idade : 27
<b>Posts</b> Posts : 98
<b>Créditos</b> Créditos : 0
<b>Respeito</b> Respeito : 0
É isso aí...
Warning : Caminhando pelo DOM YgSrOka
Interessante, não sabia disso. '-'
Koily
Koily
Coordenador

<b>Idade</b> Idade : 29
<b>Posts</b> Posts : 4744
<b>Créditos</b> Créditos : 250
<b>Respeito</b> Respeito : 36
Foco, força e fé.
Warning : Caminhando pelo DOM ZsaKMOb
Pois é cara! Tem muita coisa que nós não sabemos mas são importantes e necessárias! Valeu por ler! :]
Jhaz
Jhaz
Membro Lendário

<b>Idade</b> Idade : 28
<b>Posts</b> Posts : 2753
<b>Créditos</b> Créditos : 10000
<b>Respeito</b> Respeito : 18
Nossa, sério mesmo nem eu sabia disso! 'o'
Earth
Earth
Suporte

<b>Idade</b> Idade : 26
<b>Posts</b> Posts : 1519
<b>Créditos</b> Créditos : 120
<b>Respeito</b> Respeito : 11
= Mission in progress
LOL Jhaz somos dois eu nem imaginava isso
Jhaz
Jhaz
Membro Lendário

<b>Idade</b> Idade : 28
<b>Posts</b> Posts : 2753
<b>Créditos</b> Créditos : 10000
<b>Respeito</b> Respeito : 18
É nois Earth,

Koily, estou começando a gostar disso viu!
Se puder poste mais sobre as mesmas!
Zukerman
Zukerman
Membro

<b>Idade</b> Idade : 32
<b>Posts</b> Posts : 101
<b>Créditos</b> Créditos : 0
<b>Respeito</b> Respeito : 0
ProPixel Fórum
Warning : Caminhando pelo DOM YgSrOka
Ví, muito bom gostei, adorei.
Conteúdo patrocinado
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos