Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

140
Vistas
Alternar elemento de correo electrónico en elemento de nombre, haga clic en

Estoy tratando de resolver una pregunta de testdome.

Implemente la función showCustomers para que represente a los clientes como elementos de lista. El primer argumento de la función, clientes, es una matriz de objetos con las propiedades de nombre y correo electrónico. El segundo argumento de la función, targetList, es una lista HTML desordenada a la que se debe agregar cada cliente como un elemento de lista independiente.

Las propiedades de nombre y correo electrónico deben agregarse como dos párrafos dentro del elemento de la lista. Al principio, el elemento de párrafo de correo electrónico no debe estar presente en el DOM. El elemento de párrafo de correo electrónico debe agregarse al DOM después de hacer clic en el nombre, y debe eliminarse del DOM cuando se vuelve a hacer clic en el nombre.

Por ejemplo, el siguiente código:

 document.body.innerHTML = ` <div> <ul id="customers"> </ul> </div> `; let customers = [{name: "John", email: "john@example.com"}, {name: "Mary", email: "mary@example.com"}]; showCustomers(customers, document.getElementById("customers")); let customerParagraph = document.querySelectorAll("li > p")[0]; if(customerParagraph) { customerParagraph.click(); } console.log(document.body.innerHTML);

Debería representar:

 <div> <ul id="customers"> <li> <p>John</p> <p>john@example.com</p> </li> <li> <p>Mary</p> </li> </ul> </div>

Hice la primera parte. Este es mi código:

 function showCustomers(customers, targetList) { // Your code goes here customers.forEach(item => { let elem = ` <li> <p>${item.name}</p> <p>${item.email}</p> </li> `; targetList.innerHTML += elem; }) } document.body.innerHTML = ` <div> <ul id="customers"> </ul> </div> `; let customers = [{name: "John", email: "john@example.com"}, {name: "Mary", email: "mary@example.com"}]; showCustomers(customers, document.getElementById("customers")); let customerParagraph = document.querySelectorAll("li > p")[0]; if(customerParagraph) { customerParagraph.click(); } console.log(document.body.innerHTML);

Este código pasa 2 de 4 pruebas. No pude encontrar una manera de hacer que el correo electrónico alternara.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

 function showCustomers(customers, targetList) { // Your code goes here customers.forEach((item) => { const li = document.createElement("li"); const name = document.createElement("p"); name.textContent = item.name; name.style.cursor = "pointer"; name.addEventListener("click", (event) => { const parent = event.target.parentElement; if (parent.children.length == 1) { const email = document.createElement("p"); email.textContent = item.email; parent.appendChild(email); } else { parent.lastChild.remove(); } }); li.appendChild(name); targetList.appendChild(li); }); } document.body.innerHTML = ` <div> <ul id="customers"> </ul> </div> `; let customers = [ { name: "John", email: "john@example.com" }, { name: "Mary", email: "mary@example.com" } ]; showCustomers(customers, document.getElementById("customers")); let customerParagraph = document.querySelectorAll("li > p")[0]; if (customerParagraph) { customerParagraph.click(); } console.log(document.body.innerHTML);

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda