如何根据其相对位置选择一个td?

时间:2015-01-22 10:40:15

标签: html css-selectors jsoup html-table

这是我的HTML代码:

<html>
    <body>
        <table border=1> 
            <tr> 
                <th>foo</th> 
                <th>bar</th> 
            </tr> 
            <tr> 
                <td>1235;lsdfm*</td>
                <td>bar-value</td> 
            </tr> 
        </table> 
        <table border=1> 
            <tr> 
                <th>bar</th> 
                <th>foo</th> 
            </tr> 
            <tr> 
                <td>bar-value</td> 
                <td>sdfgsdfrr</td> 
            </tr> 
        </table>
    </body>
</html>

我想选择与td相关的th,其中包含&#34; foo&#34;文本。换句话说,我想选择带有值的td&#34; sdfgsdfrr&#34;和&#34; 1235; lsdfm *&#34;。

到目前为止,我尝试使用与Jsoup selector API兼容的css选择器:

table:has(th:matchesOwn(^foo$)) ??

DEMO

  • 如何完成此css选择器?
  • 什么是等效的纯CSS选择器?

1 个答案:

答案 0 :(得分:1)

即使使用jsoup提供的选择器,我也不认为这是可能的。例如,您无法使用:has()表示元素之间的列或位置关系。

选择器4提出了一些用于按列定位单元格元素的附加内容,包括截至2015年1月的column combinator ||。但是,当前文本似乎表明||要求您的表格具有明确{{1}元素为了工作,所以在这里也不会有用。

使用一个选择器,你可能没有太多运气。您也可以选择col,确定其位置,然后使用此信息单独找到th。您可能需要为每个表或每列单独执行此操作。