Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 10 - JavaScript: Acessando Objetos - Parte 1

Objeto Document

Para cada página HTML que é carregada no navegador, é criado um objeto document. Através desse objeto, é possível acessar todos os elementos HTML (tags) definidos na página com o uso de JavaScript. O quadro a seguir apresenta os principais atributos que podem ser acessados a partir desse objeto.

Atributo Descrição
anchors[] Vetor contendo todas as âncoras HTML (tag <a name=”...” />)
forms[] Vetor contendo todos os formulários HTML definidos na página (tags <form>)
images[] Vetor contendo todas as imagens (tags <img>)
links[] Vetor contendo todos os links definidos na página (tag <a href=”...” />)
domain Domínio do servidor da página carregada
title Título da página (tag <title>)
URL URL completa do document
Quadro 1 - Atributos do objeto document

No exemplo a seguir, são definidas duas imagens na página HTML e, no código JavaScript, é escrito na página a quantidade de imagens existentes. Essa contagem das imagens é feita através do acesso ao vetor de imagens (document.images).

Além disso, o próximo código HTML que você verá apresenta um exemplo bem interessante, que aumenta o tamanho de uma figura sempre que o usuário passar o mouse por cima dela e retorna ela ao tamanho original ao mover o mouse para fora. Nesse exemplo, iremos combinar tratamento de eventos (visto na primeira aula sobre JavaScript) com a biblioteca DOM:

Como pode ser visto, duas funções são definidas (aumentar e diminuir), as quais recebem como parâmetro uma variável que representa a posição da imagem no vetor de imagens do documento. Lembre-se de que as imagens são armazenadas no vetor de imagens de acordo com a ordem como elas foram definidas na página HTML. Essas funções aumentam a largura e altura (propriedades width e height, respectivamente) da imagem de índice passado como parâmetro.

Por fim, pode-se verificar que, na declaração das imagens, é definido o tratamento para os eventos MouseOver e MouseOut, que representam os tratamentos do evento de pôr e de tirar o mouse de cima da figura, respectivamente. Perceba que a imagem com id imagem1 é referenciada através do parâmetro 0 (representa a posição 0 do vetor) e a imagem2 é referenciada com o parâmetro 1 (representa a posição 1 do vetor).

Assim como as imagens da página podem ser acessadas e suas propriedades alteradas, é possível fazer o mesmo para os links, âncoras e formulários, somente mudando o atributo do objeto document a ser modificado. Além dos atributos, o objeto document possui alguns métodos, como mostrado na Quadro 2.

Métodos Descrição
getElementById() Retorna um elemento a partir de seu ID.
getElementsByName() Retorna todos os elementos com determinado nome.
getElementsByTagName() Retorna todos os elementos de determinada tag.
write() Escreve texto HTML no ponto onde o comando está inserido.
writeln() Escreve texto HTML no ponto onde o comando está inserido, adicionando-se uma quebra de linha no final.
Quadro 2 - Outros métodos do objeto document

Os três primeiros métodos são métodos que permitem acessar qualquer elemento da página HTML, diferentemente dos atributos, que só permitem o acesso a elementos do tipo imagem, link, âncora ou formulário. Com esses métodos, é possível ter acesso a qualquer elemento da página, desde elementos de título (<h1>, <h2>, <h3>, etc.) até elementos de formulários (<select>, <input>, <textarea>, etc.). O trecho de código abaixo exemplifica o uso do método getElementById().

Como pode ser visto, o método getElementById() recebe como parâmetro um id e retorna o elemento HTML com esse id. No exemplo mostrado, ele é usado para acessar dois elementos HTML (<h1>, com id header1 e <h2>, com id header2). Esses dois elementos são guardados nas variáveis cabecalho1 e cabecalho2, respectivamente. A partir daí, é possível acessar e modificar qualquer atributo desses elementos, inclusive o conteúdo que está contido no mesmo. Nesse exemplo, usamos o atributo innerHTML, que guarda o conteúdo definido dentro da tag HTML. Por exemplo, no caso de <h1>Teste, o atributo innerHTML vai ter valor igual a “Teste”.

Os métodos getElementByName() e getElementByTagName() são similares ao getElementById(), a diferença é que eles podem retornar vários elementos, já que podem ter vários elementos do mesmo tipo de tag (, etc.) ou até com o mesmo nome (atributo name das tags HTML). Apesar de também ser possível (ainda que não recomendado) ter diferentes elementos com o mesmo id em uma página HTML. No caso do método getElementById, ele sempre retorna somente um elemento, o primeiro que ele encontrar.

Por fim, os métodos write() e writeln(), que já foram usados em exemplos anteriores, servem para escrever algum conteúdo no ponto da página onde ele é executado. A diferença entre eles é basicamente que o writeln() adiciona uma quebra de linha ao final do texto escrito.

Versão 5.3 - Todos os Direitos reservados