Tengo una situación en la que necesito recopilar una colección de elementos que tienen padres con ID. Así que si
mi escenario
<table> <thead></tead> <tbody> <tr id="row1"><td><div class="pro_fname">name</div></td></tr> <tr id="row2"><td><div class="pro_fname">name</div></td></tr> <tr id="row3"><td><div class="pro_fname">name</div></td></tr> <tr><td><div class="pro_fname">name</div></td></tr> <tr><td><div class="pro_fname">name</div></td></tr> <tr><td><div class="pro_fname">name</div></td></tr> </tbody> </table> Desde JavaScript, ¿cómo puedo garantizar almacenar los primeros tres elementos de la clase fname en una lista, pero ignorar los otros elementos de la clase fname , todo porque los primeros 3 tienen ID principales en los elementos?
A continuación se muestra mi intento inicial...
//collect all desired elements var objFirstNames = document.getElementsByClassName("pro_fname"); ... ... //call function to check against the array type objects collected. arguments will grow... //lets just focus on first names checkInputValuesObjects(objFirstNames, objLastNames, objAttEmails, ...); //filter values where parent ID's exist function checkInputValuesObjects() { for (var i = 0; i < arguments.length; i++) { if (arguments[i][0].parentNode.parentNode.id.length) { //then I can do something with these specific elements... console.log(arguments[i]); } } }...pero estoy teniendo dificultades, específicamente a través de Firefox Console, si realmente estoy capturando solo 3 objetos, y no los 6...
document.querySelectorAll('tr[id] div'); Primero seleccionará todos los tr con un atributo id , luego obtendrá todos los elementos div dentro.
const ee = document.querySelectorAll('tr[id] div'); ee.forEach(e => console.log(e.className)); <table> <thead></tead> <tbody> <tr id="row1"><td><div class="pro_fname">name</div></td></tr> <tr id="row2"><td><div class="pro_fname">name</div></td></tr> <tr id="row3"><td><div class="pro_fname">name</div></td></tr> <tr><td><div class="pro_fname">name</div></td></tr> <tr><td><div class="pro_fname">name</div></td></tr> <tr><td><div class="pro_fname">name</div></td></tr> </tbody> </table>Lo anterior producirá:
pro_fname pro_fname pro_fname