{"id":26986,"date":"2022-04-01T17:53:47","date_gmt":"2022-04-01T20:53:47","guid":{"rendered":"\/tutoriais\/?p=26986"},"modified":"2025-04-16T04:14:01","modified_gmt":"2025-04-16T07:14:01","slug":"dom-o-que-e","status":"publish","type":"post","link":"\/br\/tutoriais\/dom-o-que-e","title":{"rendered":"O que \u00e9 DOM? Descubra o cora\u00e7\u00e3o do desenvolvimento web"},"content":{"rendered":"<p>Voc&ecirc; j&aacute; se perguntou como um navegador representa uma p&aacute;gina na web? Bem, um documento &eacute; criado pelos desenvolvedores, cheio de c&oacute;digos e elementos.<\/p><p>Mas como isso se reflete na p&aacute;gina de um site que visitamos? A resposta &eacute; simples: atrav&eacute;s do DOM.<\/p><p>Essa tecnologia j&aacute; est&aacute; integrada nos navegadores de internet, e &eacute; ela que ordena os elementos de uma p&aacute;gina para que o conte&uacute;do possa ser acessado e visualizado por todos os visitantes.<\/p><p>Neste artigo, vamos entender o que &eacute; a interface DOM e para o que ela &eacute; utilizada.<\/p><p class=\"has-text-align-center\"><a href=\"https:\/\/assets.hostinger.com\/content\/BR-Web-Development-Glossary-for-Beginners.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Baixar Gloss&aacute;rio Completo de Desenvolvimento Web<\/a><\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-o-que-e-dom\"><strong>O Que &eacute; DOM<\/strong><\/h2><p>A sigla DOM significa Document Object Model, que em portugu&ecirc;s significa Modelo de Documento por Objetos. Trata-se de uma interface de programa&ccedil;&atilde;o que os navegadores utilizam para representar p&aacute;ginas na web.<\/p><p>O DOM oferece um modelo de representa&ccedil;&atilde;o e intera&ccedil;&atilde;o do documento <a href=\"\/br\/tutoriais\/o-que-e-html-conceitos-basicos\"><strong>HTML<\/strong><\/a> ou XML. Esse modelo se estrutura em formato de &aacute;rvore, com v&aacute;rios galhos que indicam diferentes elementos da p&aacute;gina. Quando esse modelo &eacute; alterado atrav&eacute;s da linguagem de script, se altera a p&aacute;gina da web &mdash; seja sua estrutura, estilo ou elementos.&nbsp;<\/p><p>Desse modo, o DOM possibilita a manipula&ccedil;&atilde;o e modifica&ccedil;&atilde;o de elementos de um documento web ao conectar as linguagens de programa&ccedil;&atilde;o &agrave; p&aacute;gina em quest&atilde;o. Ele &eacute; neutro em termos de linguagem, ent&atilde;o pode ser executado com qualquer uma delas, ainda que seja mais popular utiliz&aacute;-lo com o <a href=\"\/br\/tutoriais\/o-que-e-javascript\"><strong>JavaScript<\/strong><\/a>.<\/p><p>Como toda p&aacute;gina na web &eacute; um documento, os navegadores precisam fazer a leitura e a interpreta&ccedil;&atilde;o desses documentos para refletir seus conte&uacute;dos na tela do seu dispositivo num formato padr&atilde;o. O DOM &eacute; a interface que representa a forma ou estrutura com que o documento ser&aacute; lido e exibido por todos os navegadores das redes.<\/p><p>&Eacute; assim que o DOM define um padr&atilde;o na internet. Essa interface permite que programas e scripts de sites sejam acessados de forma din&acirc;mica para fazer adi&ccedil;&otilde;es, remo&ccedil;&otilde;es ou atualiza&ccedil;&otilde;es do conte&uacute;do, estrutura e estilo de um documento.&nbsp;<\/p><p>O DOM define a estrutura l&oacute;gica dos documentos em forma de &aacute;rvore, a qual guia o navegador na representa&ccedil;&atilde;o e manipula&ccedil;&atilde;o dos componentes da p&aacute;gina. Assim sendo, abaixo indicamos como a &ldquo;&aacute;rvore DOM&rdquo; &eacute; normalmente estruturada:<\/p><figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/SQ3qz32VvBhTPFTeGtWOzPVhcv-mfB7C8mj6k4C1IVOttNGWf71T9s8Pq9QY4F_AlMbEKMwgnMGh5XEQf2v8-UU-G6xZc984pnSwfJvKF-CxSEOsBafgKCkkg6tCWgH6Ni9bb_N8\" alt=\"Estrutura da &aacute;rvore DOM\"><\/figure><h2 class=\"wp-block-heading\" id=\"h-qual-a-relacao-entre-dom-e-javascript\"><strong>Qual a Rela&ccedil;&atilde;o Entre DOM e JavaScript?<\/strong><\/h2><p>Na maioria dos casos, a interface DOM est&aacute; relacionada com JavaScript. Mas que rela&ccedil;&atilde;o &eacute; essa?<\/p><p>Vale come&ccedil;ar pelo fato de que o JavaScript &eacute; uma linguagem de programa&ccedil;&atilde;o, ou seja, ela &eacute; utilizada para criar o script do site. J&aacute; o DOM, como vimos, &eacute; um modelo de representa&ccedil;&atilde;o por objetos.<\/p><p>Isto &eacute;, ele define a estrutura em que o documento constru&iacute;do atrav&eacute;s do JavaScript ser&aacute; lido pelo navegador.&nbsp;<\/p><p>Sem o DOM, a linguagem de programa&ccedil;&atilde;o &mdash; que vale lembrar, pode ser qualquer uma, n&atilde;o apenas JavaScript &mdash; n&atilde;o teria um modelo para representar seus objetos. Afinal, ela n&atilde;o teria uma no&ccedil;&atilde;o da p&aacute;gina web e de seus componentes.<\/p><p>Assim, enquanto o DOM representa e estrutura e os componentes da p&aacute;gina, o JavaScript acessa e manipula esses conte&uacute;dos.&nbsp;<\/p><h2 class=\"wp-block-heading\" id=\"h-quais-os-usos-e-vantagens-do-dom\"><strong>Quais os Usos e Vantagens do DOM<\/strong><\/h2><p>Uma das principais vantagens do DOM &eacute; possibilitar a cria&ccedil;&atilde;o de aplica&ccedil;&otilde;es que alteram os dados de um site sem que seja necess&aacute;rio fazer uma atualiza&ccedil;&atilde;o desta p&aacute;gina.<\/p><p>Ainda &eacute; utilizado para cria&ccedil;&atilde;o de interfaces de usu&aacute;rio avan&ccedil;adas. Assim, o DOM tamb&eacute;m permite a constru&ccedil;&atilde;o de p&aacute;ginas que podem ser customizadas pelo pr&oacute;prio usu&aacute;rio.&nbsp;<\/p><p>Com o modelo de documento por objeto, &eacute; poss&iacute;vel modificar conte&uacute;dos e elementos de p&aacute;ginas, al&eacute;m de navegar por sua estrutura. Desse modo, qualquer componente de um documento HTML ou XML pode ser acessado e modificado atrav&eacute;s do DOM. E &eacute; mais f&aacute;cil trabalhar com ele do que diretamente com os c&oacute;digos HTML, por exemplo.<\/p><p>O DOM oferece a funcionalidade de mover os itens de uma p&aacute;gina de forma simples e r&aacute;pida, como se estivesse &ldquo;arrastando&rdquo; eles, por isso facilita os processos de desenvolvimento dos programadores.<\/p><p>Al&eacute;m de facilitar, ele tamb&eacute;m expande o universo de possibilidades inovadoras dos desenvolvedores web, que podem criar at&eacute; mesmo efeitos <a href=\"\/br\/tutoriais\/diferenca-entre-estilos-css#O_Que_Exatamente_e_CSS\"><strong>CSS<\/strong><\/a> sem precisar recarregar a p&aacute;gina. Como o DOM pode ser manipulado de diversas formas, seus usos s&atilde;o extensos e suas vantagens significativas. Basta usar e abusar da criatividade!<\/p><h2 class=\"wp-block-heading\" id=\"h-como-usar-o-dom\"><strong>Como Usar o DOM<\/strong><\/h2><p>N&atilde;o h&aacute; necessidade de instalar um programa, ou realizar tarefas complexas para usar o DOM. Do lado dos navegadores, ele j&aacute; vem inclu&iacute;do. E do lado do documento, ele &eacute; acessado diretamente atrav&eacute;s dos scripts (por exemplo, direto no JavaScript).<\/p><p>Ou seja, quando voc&ecirc; cria um script, j&aacute; pode come&ccedil;ar a usar a <strong><a href=\"\/br\/tutoriais\/api-restful#O_Que_E_API\">API<\/a><\/strong> DOM. Assim vai poder manipular o pr&oacute;prio documento e seus componentes, que ser&atilde;o refletidos como elementos da p&aacute;gina web.<\/p><p>Quando precisar atualizar algum componente da p&aacute;gina, pode fazer utilizando o DOM. Assim, voc&ecirc; n&atilde;o ter&aacute; a necessidade de trabalhar direto com os c&oacute;digos HTML ou CSS, pois o modelo de documento por objetos armazena a interpreta&ccedil;&atilde;o deste c&oacute;digo no formato de &aacute;rvore.<\/p><p>O desenvolvedor, portanto, pode movimentar e manipular os elementos de forma simples pelo documento, sem nem mesmo precisar atualizar ou recarregar a p&aacute;gina.<\/p><h2 class=\"wp-block-heading\" id=\"h-tipos-de-dados-fundamentais\"><strong>Tipos de Dados Fundamentais<\/strong><\/h2><p>Como j&aacute; vimos, toda p&aacute;gina da web pode ser representada em estrutura de &aacute;rvore. O topo dessa &aacute;rvore &eacute; estruturado pelo modelo de documento por objetos e ter&aacute; o documento e elemento raiz HTML.<\/p><p>A partir dele, se ramificam os &ldquo;elementos-filhos&rdquo;, como <strong>Head<\/strong> e <strong>Body<\/strong>. Estes, por sua vez, tamb&eacute;m podem ter elementos-filhos, e todos os elementos podem possuir atributos.<\/p><p>Agora vamos conferir alguns dos dados e objetos fundamentais do modelo de documento por objetos:<\/p><ul class=\"wp-block-list\">\n<li><strong>Document: <\/strong>&eacute; o objeto raiz, representa o pr&oacute;prio documento HTML.&nbsp;<\/li>\n\n\n\n<li><strong>Node: <\/strong>&eacute; um n&oacute;, e representa uma nomenclatura mesmo:&nbsp; todo objeto em um documento &eacute; algum tipo de n&oacute;.<\/li>\n\n\n\n<li><strong>Element: <\/strong>o n&oacute; do tipo elemento representa as <em>tags<\/em> do documento HTML, isto &eacute;, o objeto de elemento pode ter &ldquo;n&oacute;s-filhos&rdquo;, como de texto e de atributos.&nbsp;&nbsp;<\/li>\n\n\n\n<li><strong>Attribute: <\/strong>este tipo de objeto representa um atributo contido num elemento HTML.<\/li>\n\n\n\n<li><strong>Text: <\/strong>&eacute; o texto, ele fica localizado entre os elementos e representa o conte&uacute;do das <em>tags<\/em>, ou elementos. Por exemplo: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;p&gt;aqui est&aacute; um texto&lt;\/p&gt;<\/code>.<\/li>\n<\/ul><p>Todos estes dados da &aacute;rvore DOM podem ser adicionados, removidos ou alterados pelo JavaScript. O DOM conta com diversos m&eacute;todos que podem ser utilizados para fazer a liga&ccedil;&atilde;o entre esses objetos.<\/p><p>Dois exemplos de m&eacute;todos s&atilde;o o <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">createElement()<\/code>, que cria um novo elemento HTML, e o <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">setAttribute()<\/code>, utilizado para configurar novos atributos para os elementos HTML.&nbsp;<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-32927\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-conclusao\"><strong>Conclus&atilde;o<\/strong><\/h2><p>O DOM cumpre o objetivo de padronizar a representa&ccedil;&atilde;o de um documento em uma p&aacute;gina web. Ele faz isso oferecendo uma estrutura em &aacute;rvore, que organiza os elementos. A forma com que faz essa representa&ccedil;&atilde;o de p&aacute;ginas permite que o documento, seu estilo e conte&uacute;do, sejam facilmente manipulados pelas linguagens de programa&ccedil;&atilde;o.&nbsp;<\/p><p>Os principais usos dessa interface de programa&ccedil;&atilde;o est&atilde;o na cria&ccedil;&atilde;o de p&aacute;ginas inteligentes e de aplica&ccedil;&otilde;es din&acirc;micas. E suas vantagens est&atilde;o em n&atilde;o precisar atualizar e recarregar a p&aacute;gina da web inteira para fazer alguma modifica&ccedil;&atilde;o em seu conte&uacute;do ou estilo.<\/p><p>Apesar de ser um t&oacute;pico complexo, voc&ecirc; n&atilde;o precisa entender todos os detalhes do processo de funcionamento do DOM para poder utiliz&aacute;-lo e aproveitar seus benef&iacute;cios. Lembrando que modelo independe da linguagem de programa&ccedil;&atilde;o utilizada. Escolha a sua e aproveite as possibilidades de inova&ccedil;&atilde;o que o Modelo de Documento por Objetos oferece!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc&ecirc; j&aacute; se perguntou como um navegador representa uma p&aacute;gina na web? Bem, um documento &eacute; criado pelos desenvolvedores, cheio de c&oacute;digos e elementos. Mas como isso se reflete na p&aacute;gina de um site que visitamos? A resposta &eacute; simples: atrav&eacute;s do DOM. Essa tecnologia j&aacute; est&aacute; integrada nos navegadores de internet, e &eacute; ela [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/dom-o-que-e\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":305,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Voc\u00ea sabe o que \u00e9 DOM? O Document Object Model \u00e9 uma ferramenta muito \u00fatil para desenvolvimento e programa\u00e7\u00e3o. Conhe\u00e7a mais sobre ele aqui.","rank_math_focus_keyword":"o que \u00e9 dom","footnotes":""},"categories":[5602],"tags":[7377,7376],"class_list":["post-26986","post","type-post","status-publish","format-standard","hentry","category-glossario","tag-document-object-model","tag-dom"],"hreflangs":[{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/dom-o-que-e","default":1},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/dom-o-que-e","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/26986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/305"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=26986"}],"version-history":[{"count":4,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/26986\/revisions"}],"predecessor-version":[{"id":38895,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/26986\/revisions\/38895"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=26986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=26986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=26986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}