我有以下HTML:
<table width="100%" border="1" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td></td>
</tr>
<tr>
<td>I want this TD</td>
<td></td>
</tr>
<tr>
<td></td>
<td>
<table>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>I don't want this TD</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
我想选择td
,文字“我想要这个TD”
我使用以下查询:
Elements el = tbl.select("tbody > tr:eq(1) > td:eq(0)");
System.out.println(el.toString());
但是我得到了所需的TD和另外一个意想不到的TD:
<td>I want this TD</td>
<td>I don't want this TD</td>
我做错了什么?
答案 0 :(得分:0)
想出来:我的选择器不够具体。
如果我的桌子周围有<body>
之类的父元素,我可以使用选择器
body > tbody > tr:eq(1) > td:eq(0)
将精确选择我想要的<td>
。
但是如果没有父元素,我的查询过于宽泛,因此它会抓取所需的<td>
和<{1}}。