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

arrow_back Aula 06 - AJAX: Interação com o Servidor

Código passo a passo pt.3

AخA
1
nome = livro.attributes.getNamedItem("nome").nodeValue;

O método  getNamedItem() retorna um objeto contendo informações do atributo informado, e para acessar o seu valor é necessário utilizar a propriedade nodeValue.

1
1
var campoLivro = document.getElementById("livros")

A linha 53 utiliza HTML DOM para recuperar uma referência da lista HTML.

As demais linhas desse método são apenas repetições dos itens já explicados até o momento.

Função carregarLivro:

x
1
function carregarLivro(indice){
2
   
3
   var livros = xmlDoc.getElementsByTagName("livro");
4
   var livro = livros.item(indice);
5
   
6
   var nome="";
7
   var isbn="";
8
   if(livro.hasAttributes()){
9
     nome = livro.attributes.getNamedItem("nome").nodeValue;
10
     document.getElementById("nome").innerHTML = nome;
11
     isbn = livro.attributes.getNamedItem("isbn").nodeValue;
12
     document.getElementById("isbn").innerHTML = isbn;
13
   }
14
15
   var nosFilhos = livro.childNodes;
16
   for ( var i = 0; i < nosFilhos.length; i++) {
17
     var noFilho = nosFilhos.item(i);
18
     
19
     switch (noFilho.nodeName) {
20
     case "editora":
21
     case "edicao":
22
     case "preco":            
23
     case "sinopse":                        
24
       var valor = noFilho.firstChild.nodeValue;
25
       document.getElementById(noFilho.nodeName).innerHTML = valor
26
       break;
27
     case "autores":
28
       var valor = "";
29
       for ( var j = 0; j < noFilho.childNodes.length; j++) {
30
         if(noFilho.childNodes.item(j).nodeName=="autor"){
31
           if( valor != "" ) {
32
             valor+=" | ";
33
           }
34
           valor += noFilho.childNodes.item(j).firstChild.nodeValue;
35
         }
36
       }
37
       document.getElementById(noFilho.nodeName).innerHTML = valor;
38
     
39
     default:
40
       break;
41
     }
42
     
43
   }
44
     
45
   var atributos = document.getElementById("divLivroSelecionado").attributes;
46
   atributos.getNamedItem("style").nodeValue="";
47
}

Essa função atualiza a tabela contendo os dados do livro selecionado. Ela recebe como parâmetro o índice do nó (tag livro) a ser carregado. As funções do XML DOM introduzidas nesse trecho são:

1
1
var nosFilhos = livro.childNodes

O atributo childNodes retorna todos os nós filhos do nó em questão. Como no exemplo do código acima, o nó em questão é do tipo “livro”, então, os nós filhos retornados são: editora, edicao, autores, preco e sinopse.

1
1
var valor = noFilho.firstChild.nodeValue;

Quando o nó em questão contém apenas texto (como no caso dos nós editora, edicao, preco, sinopse e autor), para acessar o seu valor, é necessário utilizar os atributos firstChild.nodeValue<, pois o texto contido dentro do nó também é considerado com um nó (do tipo texto).

Versão 5.3 - Todos os Direitos reservados