我想选择具有特定文本作为内容的每个单元格。我这样做:
$("td:contains('Some Text')")
但在下面的标记中,该表达式找到两个td
s:
<table>
<tr>
<td>
<table>
<tr>
<td>Some Text</td>
</tr>
</table>
</td>
</tr>
</table>
我只想要实际包含文本的单元格,而不是包含其中一个单元格中包含文本的表格的单元格。
如何修改我的选择器以实现目标?
答案 0 :(得分:3)
答案 1 :(得分:1)
$("td").filter(function() {
return $(this.childNodes).filter(function() {
return this.nodeType === 3 && this.nodeValue.indexOf("Some Text") > -1;
}).length;
});
答案 2 :(得分:0)
如果您只想通过更改选择器来完成此操作,您可以随时执行$("table table td:contains('Some Text')")
更好的选择是给内部表一个ID。
<table>
<tr>
<td>
<table id="innerTable">
<tr>
<td>Some Text</td>
</tr>
</table>
</td>
</tr>
</table>
//JS
$('#innerTable').find("td:contains('Some Text')");