-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
60 lines (43 loc) · 1.34 KB
/
script.js
File metadata and controls
60 lines (43 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
let usuarios = [];
async function obtenerUsuarios() {
const estado = document.getElementById("estado");
const loader = document.getElementById("loader");
estado.textContent = "";
loader.style.display = "block";
try {
const respuesta = await fetch("https://jsonplaceholder.typicode.com/users");
const data = await respuesta.json();
usuarios = data;
loader.style.display = "none";
renderizarUsuarios(usuarios);
} catch (error) {
loader.style.display = "none";
estado.textContent = "Error al cargar usuarios. Intenta nuevamente.";
}
}
function renderizarUsuarios(listaUsuarios) {
const lista = document.getElementById("lista");
lista.innerHTML = "";
if (listaUsuarios.length === 0) {
lista.innerHTML = "<p>No se encontraron usuarios</p>";
return;
}
listaUsuarios.forEach(usuario => {
const li = document.createElement("li");
li.innerHTML = `
<strong>${usuario.name}</strong><br>
📧 ${usuario.email}<br>
🏢 ${usuario.company.name}<br>
📍 ${usuario.address.city}
`;
lista.appendChild(li);
});
}
document.getElementById("buscador").addEventListener("input", (e) => {
const texto = e.target.value.toLowerCase();
const filtrados = usuarios.filter(u =>
u.name.toLowerCase().includes(texto)
);
renderizarUsuarios(filtrados);
});
obtenerUsuarios();