Reputation: 5090
I want to select only the first level of 'td' elements in a table and not the cells of any nested tables. eg:
<table id="Outer">
<tr>
<td> --this one
</td>
<td> --this one
<table>
<tr>
<td></td> -- but not this one or any deeper nested cells
</tr>
</table>
</td>
</tr>
</table>
(and yes in prod code i would include tbody, thead...)
Upvotes: 2
Views: 5104
Reputation: 532595
I'd use the children selector, which only selects the immediate children matching the expression. To make it easy to select just the outer table, I'd give it a name. NOTE: this won't work with your sample as I've added in the selectors for thead, tbody, and tfoot as you indicate you will have in production. Adjust accordingly for your sample.
$('table#namedTable').children('tbody,thead,tfoot')
.children('tr')
.children('td')
Upvotes: 10
Reputation: 3634
Give the outermost table an id of "Outer":
$("table#Outer > td").text("selected");
Upvotes: 0