Compare commits
1 Commits
solucion-e
...
solucion-e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba0098e540 |
@@ -1,11 +1 @@
|
|||||||
const lista = document.querySelector("#lista");
|
// Agregar aquí el código javascript
|
||||||
|
|
||||||
// Un solo listener en la lista, no uno por ítem (delegación de eventos).
|
|
||||||
lista.addEventListener("click", (e) => {
|
|
||||||
// Verificamos que el clic fue sobre un <li>. Si fue sobre otro elemento,
|
|
||||||
// retornamos sin hacer nada.
|
|
||||||
if (e.target.tagName !== "LI") return;
|
|
||||||
|
|
||||||
// toggle agrega la clase si no la tiene, y la quita si ya la tenía.
|
|
||||||
e.target.classList.toggle("seleccionado");
|
|
||||||
});
|
|
||||||
|
|||||||
@@ -1,5 +1,2 @@
|
|||||||
.seleccionado {
|
/* Agregar el código CSS necesario para el ejercicio */
|
||||||
background-color: yellow;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,15 +9,6 @@
|
|||||||
<body>
|
<body>
|
||||||
<h1>Ejercicio 3</h1>
|
<h1>Ejercicio 3</h1>
|
||||||
|
|
||||||
<ul id="lista">
|
|
||||||
<li>Elemento 1</li>
|
|
||||||
<li>Elemento 2</li>
|
|
||||||
<li>Elemento 3</li>
|
|
||||||
<li>Elemento 4</li>
|
|
||||||
<li>Elemento 5</li>
|
|
||||||
<li>Elemento 6</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<script src="ejercicio3.js"></script>
|
<script src="ejercicio3.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1 +1,37 @@
|
|||||||
// Agregar aquí el código javascript
|
const paises = [
|
||||||
|
"Argentina", "Brasil", "Chile", "Colombia", "Ecuador",
|
||||||
|
"México", "Paraguay", "Perú", "Uruguay", "Venezuela"
|
||||||
|
];
|
||||||
|
|
||||||
|
const campo = document.querySelector("#filtro");
|
||||||
|
|
||||||
|
function construirLista(items) {
|
||||||
|
const lista = document.querySelector("#lista");
|
||||||
|
// Limpiamos la lista antes de reconstruirla.
|
||||||
|
lista.innerHTML = "";
|
||||||
|
|
||||||
|
for (const pais of items) {
|
||||||
|
const item = document.createElement("li");
|
||||||
|
item.textContent = pais;
|
||||||
|
lista.appendChild(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
campo.addEventListener("input", () => {
|
||||||
|
const texto = campo.value.toLowerCase();
|
||||||
|
|
||||||
|
// Si el campo está vacío, mostramos todos los países.
|
||||||
|
// Si no, filtramos los que incluyan el texto ingresado.
|
||||||
|
// toLowerCase() en ambos lados hace la comparación sin distinguir mayúsculas.
|
||||||
|
if (texto === "") {
|
||||||
|
construirLista(paises);
|
||||||
|
} else {
|
||||||
|
const filtrados = paises.filter(p => p.toLowerCase().includes(texto));
|
||||||
|
// Otra forma, con indexOf:
|
||||||
|
// const filtrados = paises.filter(p => p.toLowerCase().indexOf(texto) > -1);
|
||||||
|
construirLista(filtrados);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Mostramos todos los países al cargar la página.
|
||||||
|
construirLista(paises);
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>Ejercicio 5</h1>
|
<h1>Ejercicio 5</h1>
|
||||||
|
<input type="text" id="filtro" placeholder="Buscar país...">
|
||||||
|
<ul id="lista"></ul>
|
||||||
|
|
||||||
<script src="ejercicio5.js"></script>
|
<script src="ejercicio5.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Reference in New Issue
Block a user