Propriedades dos nós e elementos

Os nós do DOM possuem um conjunto de propriedades que nos nos permitem aceder/alterar o seu conteúdo, ver o tipo de nó, o seu nome, etc..

Algumas das propriedades mais importantes são:

nodeType

Os tipos de nós mais importantes são:

Tipo de elemento NodeType
Elemento 1
Atributo 2
Texto 3
Comentário 8
Documento 9

Exemplo:

  <body>
    <p id="intro">Hello World!</p>
    <script type="text/javascript">
      x = document.getElementById("intro");
      console.log(x.nodeType);  //Output: 1

    </script>
  </body>

nodeName

A propriedade nomeName devolve o nome de um nó.

  • O nodeName de um nó de elemento é o mesmo do nome do elemento HTML.
  • O nodeName de um nó de atributo é o nome do atributo.
  • O nodeName de um nó de texto é sempre #text.
  • O nodeName de um nó de documento é sempre #document.

Exemplo:

  <body>
    <p id="intro">Hello World!</p>
    <script type="text/javascript">
      x = document.getElementById("intro");
      console.log(x.nodeName);  //Output:  P
    </script>
  </body>

nodeValue

A propriedade nodeValue especifica o valor de um nó.

  • O nodeValue de nós de elemento é null.
  • O nodeValue de nós de texto é o próprio texto.
  • O nodeValue de nós de atributo é o valor do atributo.

Exemplo:

<body>
    <p id="intro">Hello World!</p>
    <script type="text/javascript">
      x = document.getElementById("intro");
      console.log(x.firstChild.nodeValue);  //Output: Hello World
    </script>
  </body>

tagName

A propriedade tagName devolve uma string com o nome do elemento.

A diferença para a propriedade nodeName é que a propriedade tagName só devolve o nome de elementos enquanto a propriedade nodeName devolve o nome de todo o tipo de nós, como elementos, atributos, texto e comentários.

innerHTML

A propriedade innerHTML permite ler/alterar o conteúdo de HTML dos elementos de HTML.

Exemplo:

  <body>
    <div id="div1">
      <p>Linha 1</p>
    </div>

    <script>
      const div = document.getElementById("div1");
      console.log(div.innerHTML); //Output: <p>Linha 1</p>
    </script>
  </body>

innerText

A propriedade innerText permite ler/alterar o conteúdo de texto de um elemento e de todos os seus filhos.

A propriedade innerText retorna o conteúdo de texto de todos os elementos filho, exceto de elementos SCRIPT e STYLE.

Exemplo:

  <body>
    <div id="div1">
      <p>Linha 1</p>
    </div>

    <script>
      const div = document.getElementById("div1");
      console.log(div.innerText);  //Output: Linha 1
    </script>
  </body>

textContent

A propriedade textContent permite ler/alterar o conteúdo de texto de um elemento e de todos os seus filhos.

Exemplo:

  <body>
    <div id="div1">
      <p id="p1">Linha 1</p>
    </div>

    <script>
      const p = document.getElementById("p1");
      console.log(p.textContent);  //Output: Linha 1
      p.textContent = "Linha alterada";
    </script>
  </body>

className

A propriedade className permite ler/alterar o nome da classe de um elemento, definido no atributo class. Para definir mais do que uma classe basta especificar os nomes das classes separadas por vírgulas.

Exemplo:

<head> 
   <style> 
      .red { 
         color: maroon; 
         font-weight: bold; 
      } 
   </style> 
</head> 
<body> 
   <h2>CSS Tutorial</h2> 
   <script> 
      let h2 = document.querySelector("h2"); 
      h2.className = "red"; 
   </script> 
</body> 

classList

A propriedade classList devolve os nomes das classes definidas no atributo class de um elemento.

Podemos adicionar, remover ou alternar classes na propriedade classList, com os métodos add(), remove() e toggle().

Esta propriedade possui as seguintes propriedades e métodos:

length: devolve o número de classes na lista.

add(class1, class2, …): adiciona uma ou mais classes à lista. Se forem várias classes, os nomes das classes devem estar separadas por vírgulas. Se uma das classes já existir na lista, ela não é adicionada.
remove(class1, class2, …): remove uma ou mais classes da lista. Se forem várias classes, os nomes das classes devem estar separadas por vírgulas.
toggle(class): remove uma classe da lista se a classe existir. Se a classe não existir é adicionada à lista.
contains(class): Verifica se uma classe existe na lista. Se existir retorna true. Se não existir, retorna false.
item(índex): retorna a classe com o índice índex. Se o índice estiver fora do alcance, retorna null.

Exemplo1:
document.getElementById("myDIV").classList.add("mystyle", "anotherClass", "thirdClass");

Exemplo2:
document.getElementById("myDIV").classList.remove("mystyle");

Exemplo3:
document.getElementById("myDIV").classList.toggle("newClassName");

value

A propriedade value permite ler/alterar o valor de uma caixa de texto.

Exemplo:

  <body>
    Nome: <input type="text" name="nome" id="nome">
    <script>
      const input = document.getElementById("nome");
      console.log(input.value)
    </script>
  </body>