Boa Noite!
Terminei o curso, gostei muito. Pude perceber que vc pode adicionar quantas vezes quiser os pacientes do ajax, como poderia impedir que isso acontecesse?
var botaoBuscar = document.querySelector("#buscar-pacientes");
botaoBuscar.addEventListener("click", function(){
console.log("buscando pacientes...");
var xhr = new XMLHttpRequest(); //O XMLHttpRequest diz que queremos abrir uma requisição http;
xhr.open("GET", "https://api-pacientes.herokuapp.com/pacientes"); //abre a conexão com o servidor que deseja importar os arquivos;
xhr.send(); // O open abre a conexão, porém, não a envia, por isso é necessário usar a função send();
xhr.addEventListener("load", function(){ //É adicionado um escutador de eventos para receber o "load", que é a resposta do servidor.
var errosAjax = document.querySelector("#erros-ajax");
if(xhr.status == 200){
errosAjax.classList.add("invisivel");
var resposta = xhr.responseText;
var pacientes = JSON.parse(resposta);
pacientes.forEach(function(paciente){
adicionaPacienteNaTabela(paciente);
});
}else{
errosAjax.classList.remove("invisivel");
}
});
});
function pacientesAdiconados(){
var pacientes = document.querySelectorAll(".pacientes");
var pacientesBuscados = [];
pacientes.forEach(function(paciente){
pacientesBuscados.push(paciente);
})
return pacientesBuscados;
}
console.log(pacientesAdiconados());
eu pensei em criar essa função pacientesAdicionados(), que conteria todos os pacientes que possuem a classe .paciente, já que em todos os pacientes que são incrementados a tabela esta classe é adicionada, após isso comparar se o xhr.responseText é diferente do pacientesAdicionados, para aí sim adicionar os itens do ajax na tabela.
Porém dando um console.log o array já volta vazio, o que fiz de errado? Deveria usar outra Lógica?