Como vimos anteriormente, existem dois tipos de elementos DOM, o elemento nó e o elemento texto. E para criar um novo elemento, seja ele texto ou nó, nós usaremos os mesmos passos, porém, métodos diferentes:
- document.createElement([TAG_HTML]);
- document.createTextNode(“string”);
- elemntoPai.appendChild(elemntoFilho);
O primeiro método recebe como parâmetro o nome de uma tag HTML (em maiúscula) e retorna uma referência a um novo elemento recém-criado, e o segundo recebe uma string e também retorna uma referência ao elemento criado, já a terceiro método anexa ao elemento pai um elemento filho.
Os passos para se criar um elemento são:
Exemplo 01 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | <html> <head> <title>Criando Elementos DOM</title> <script> function criar() { var linha = document.createElement("TR"); //cria um elemento <tr> var cel = document.createElement("TD"); //cria um elemento <td> var cel2 = document.createElement("TD"); //cria outro elemento <td> var txt = document.createTextNode("Coluna 1"); //cria um elemento texto var txt2 = document.createTextNode("Coluna 2"); //cria um elemento texto> /* o elemento linha será pai dos elementos cel e cel2 cel será pai do elemento txt e cel2 pai do elemento txt2 */ cel.appendChild(txt); cel2.appendChild(txt2); linha.appendChild(cel); linha.appendChild(cel2); /* o elemnto linha vai ser um no filho da tabela */ var tabela = document.getElementById("container"); /* agora nós temos uma<strong> referência para a tabela</strong> */ tabela.appendChild(linha); /* quando anexamos um elemento como um filho de outro elemento seus filho passam a ser netos deste outro elemento */ } </script> </head> <body> <table border="1"> </table> <br /> <input value="CRIAR"> </body> </html> |
Quando criamos um novo elemento, ele não estará anexado a nenhum elemento, por isso precisamos anexá-lo a um pai. O novo elemento criado, também não possui nenhum atributo, por isso precisamos atribuir atributos a ele.
Exemplo 02:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | <html> <head> <title>Craindo Atributos Para novos Elementos</title> <script> function criar() { var el = window.prompt("Qual elemento você deseja criar?",""); el = el.toLowerCase(); if(el == "select") { var formEl = document.createElement("SELECT"); var num = window.prompt("Quants opções você quer ?",""); for(i=0;i<num;i++) { var opt = document.createElement("OPTION"); var valor = window.prompt("Qual o valor da opção ?",""); opt.setAttribute("value",valor); var txt = document.createTextNode(valor); opt.appendChild(txt); formEl.appendChild(opt); } } else { var formEl = document.createElement("INPUT"); formEl.setAttribute("type",el); //determina o atributo type do elemento } if(el == "button" || el == "submit" || el == "reset" ) { var valor = window.prompt("Qual o valor do elemento?",""); formEl.setAttribute("value",valor); } if(el == "text" || el == "password") { var tam = window.prompt("Qual o tamanho do elemento?",""); formEl.setAttribute("size",tam); var maximo = window.prompt("Qual o nº max de caracteres do elemento?",""); formEl.setAttribute("maxlength",maximo); } if(el == "radio" || el == "checkbox") { var desc = window.prompt("Qual a descrição do elemento?",""); var txt = document.createTextNode(desc); var formulario = document.getElementById("form1"); var quebra = document.createElement("BR"); formulario.appendChild(formEl); formulario.appendChild(txt); formulario.appendChild(quebra); } else { var formulario = document.getElementById("form1"); var quebra = document.createElement("BR"); formulario.appendChild(formEl); formulario.appendChild(quebra); } } </script> </head> <body> <form> </form> <br /> <input value="CRIAR" /> </body> </html> |
Bem, acabamos de ver como criar elementos de um formulário dinamicamente, sendo possível incluir qualquer elemento, agora iremos ver como excluir um elemento.
elementoPai.removeChild(“filho”); //remove o último elemento filho, retornando uma referência ao elemento removido.
replaceChild( novoFilho, filhoAntigo);
O primeiro método remove o último elemento filho de um elemento, e o segundo método substitui o elemento filho por outro elemento
Com estes métodos você pode criar ou modificar quaisquer elementos do documento sendo muito útil em AJAX, pois você só precisa se preocupar em carregar o conteúdo, pois o documento pode ser montado do lado do cliente, diminuindo em muito o tráfego de dados entre cliente-servidor.
Bom isto é tudo pessoal.
