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

243
Vistas
AJAX JSON HTML JS ¿Cómo generar una tabla de datos?

HTML:

 <table> <tr> <th>Student Name</th> <th>Student Grades</th> </tr> <tr> <td> <select name="dropdown" id="dropdown"> <option> - </option> <option id = "StudentA"> Student A </option> <option id = "StudentB"> Student B </option> </select> </td> <td></td> <td></td> </tr> <tr> <td> <select name="dropdown" id="dropdown"> <option> - </option> <option id = "StudentA"> Student A </option> <option id = "StudentB"> Student B </option> </select> </td> <td></td> <td></td> </tr> </table>

JSON:

 {"students": [ {"studentName" : "studentA", "studentGrades" : "gradeC"}, {"studentName" : "studentB", "studentGrades" : "gradeA+"}, ] }

¿Cómo hacer que cuando seleccione una opción desplegable del estudiante A, las calificaciones de los estudiantes se muestren automáticamente en la tabla?

Solo analicé el texto de respuesta e hice un registro de la consola y lo hice. Tengo a todos los estudiantes en el registro de la consola, pero no estoy exactamente seguro de cómo hacerlo con el menú desplegable de opciones de selección.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede probar el siguiente enfoque para lograr esto. Agregue un evento onchange en la etiqueta de selección y, según la opción seleccionada, actualice la columna de calificaciones.

Código de trabajo completo:

 const data = { "students": [{ "studentName": "studentA", "studentGrades": "gradeC" }, { "studentName": "studentB", "studentGrades": "gradeA+" }, ] } function showGrades() { const dropdowns = document.querySelectorAll('#dropdown') dropdowns.forEach(dropdown => { const selectedVal = dropdown.options[dropdown.selectedIndex].id const formattedVal = selectedVal.charAt(0).toLowerCase() + selectedVal.slice(1) const grades = data.students.map(item => { if (item.studentName == formattedVal) { dropdown.parentElement.parentElement.children[1].innerText = item.studentGrades; } }) }) }
 <table> <tr> <th>Student Name</th> <th>Student Grades</th> </tr> <tr> <td> <select name="dropdown" id="dropdown" onchange="showGrades()"> <option> - </option> <option id="StudentA"> Student A </option> <option id="StudentB"> Student B </option> </select> </td> <td></td> </tr> <tr> <td> <select name="dropdown" id="dropdown" onchange="showGrades()"> <option> - </option> <option id="StudentA"> Student A </option> <option id="StudentB"> Student B </option> </select> </td> <td></td> </tr> </table>

Espero que así es como querías que funcionara.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede lograrlo activando un evento onchange en select y luego filtrando la matriz de estudiantes usando el método Array.filter() para obtener la opción seleccionada studentGrade .

Demostración de trabajo:

 const obj = { "students": [ {"studentName" : "studentA", "studentGrades" : "gradeC"}, {"studentName" : "studentB", "studentGrades" : "gradeA+"}, ] }; function getGrades() { const selectedOption = document.getElementById('dropdown').value; document.getElementById('studentGrade').innerHTML = obj.students.find((obj) => obj.studentName === selectedOption).studentGrades; }
 <table> <tr> <th>Student Name</th> <th>Student Grades</th> </tr> <tr> <td> <select name="dropdown" id="dropdown" onchange="getGrades()"> <option> - </option> <option value="studentA"> Student A </option> <option value="studentB"> Student B </option> </select> </td> <td id="studentGrade"></td> </tr> </table>

over 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