<table> <tr> <th>Column name</th> <th>Column name</th> </tr> <tr> <td>Column value</td> <td>Column value</td> <tr> </table> <table> <tr> <th>Column name</th> <th>Column name</th> </tr> <tr> <td>Column value</td> <td>Column value</td> <tr> </table>
I’d like to process all tr
that contain a td
, but can only find contain queries for attributes and content; not elements. Is the latter possible with a single query?
Advertisement
Answer
Not directly, but you can use filter
to get the appropriate rows
const rowsWithTd = [...document.querySelectorAll("table tr")].filter( x => x.querySelector("td")) console.log(rowsWithTd.map(x => x.outerHTML))
<table> <tr> <th>Column name</th> </tr> <tr> <td>Column value</td> <tr> </table> <table> <tr> <th>Column name</th> </tr> <tr> <td>Column value</td> <tr> </table>