Estoy tratando de crear una matriz simple con jquery a partir de una tabla con solo filas, pero una fila puede contener varios elementos de tiempo.
Solo pude encontrar soluciones para tablas con valores td únicos y sin hijos ...
Esta es mi tabla:
<div id="customhours"> <table> <tbody> <tr> <td>Tuesday</td> <td> <time>17:00 - 18:00</time> </td> </tr> <tr> <td>Friday</td> <td> <time>16:00 - 17:00</time> <time>17:00 - 18:00</time> </td> </tr> </tbody> </table> </div>La matriz que estoy buscando es:
[["Tuesday", "17:00 - 18:00"], ["Friday", ["16:00 - 17:00, 17:00 - 18:00"]]]Cualquier ayuda sería apreciada.
Para cada fila, busque el día en el primer <td> y todas las etiquetas <time> en el último <td> :
let a = [] // Results will go here $('#customhours tr').each(function() { let day = $(this).find('td:first-child').text() // eg Tuesday let times = [] $(this).find('td:last-child time').each(function(){ times.push($(this).text()) }) a.push([day, ( ( times.length == 1) ? times[0] : times )]) }) console.log(a) <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script> <div id="customhours"> <table> <tbody> <tr> <td>Tuesday</td> <td> <time>17:00 - 18:00</time> </td> </tr> <tr> <td>Friday</td> <td> <time>16:00 - 17:00</time> <time>17:00 - 18:00</time> </td> </tr> </tbody> </table> </div>