1

有没有办法在另一个元素之后选择一个元素?

例如,如果我有:

<table>
    <tr>
        <th></th>
        <td></td>
    </tr>
    <tr>
        ...
    </tr>
</table>

我想选择我能做的第一个:


Elements select = Jsoup.parse(HTML_PAGE).select("th");
Element element = select.get(0);
但是我该怎么说:选择第一个之后的 td 呢?

谢谢您的帮助。

4

1 回答 1

2

您可以使用组合不同的JSoup Selectors

例如,对于您的问题:“选择第一个 th 之后的 td”

  • lt 伪选择器:

    • :lt(n)- 兄弟索引小于 n 的元素
  • 兄弟选择器:您有两个选择:

    • E + F- 紧跟在同级 E 之前的 F 元素
    • E ~ F- 前面有兄弟 E 的 F 元素

因此,对于选择第一个 th ,它会是th:lt(1),而对于它之后的 td + td

最终代码:

Elements select = Jsoup.parse(HTML_PAGE).select("th:lt(1) + td");
Element element = select.get(0);

返回的元素将是 td 标记,紧跟在找到的第一个标记之前。

于 2010-11-03T13:51:56.543 回答