【发布时间】:2015-05-27 06:16:54
【问题描述】:
想象给我一张这样的桌子:
<table>
<tr><td>A</td></tr>
<tr><td><a href="#">B</a></td></tr>
<tr><td><a href="#">C</a></td></tr>
<tr><td>D</td></tr>
<tr><td><a href="#">E</a></td></tr>
<tr><td>B</td></tr>
</table>
我想构建一个 CSS 选择器(首选)或一个 XPath(接受)来挑选包含 a 锚点的第 n 行,这样:
selector(1) => <a href="#">B</a>
selector(2) => <a href="#">C</a>
selector(3) => <a href="#">E</a>
CSS 选择器
在这一点上,我很确定 CSS 不会完成这项工作,但是
'table tr:nth-child(' + n + ')'
将选择第 n 行,但无论它们是否具有 a 锚点,都会选择行。同样,
'table tr:nth-child(' + n + ') a'
将选择带有 a 锚点的行,但前提是 n 为 2、3 或 5。
XPath
使用 XPath,这匹配所有具有 a 的 tr
`//table//tr//a/ancestor::tr`
但我不知道如何选择第 n 个匹配项。特别是,
`//table//tr//a/ancestor::tr[position() = 2]`
似乎没有选择任何东西。
【问题讨论】:
标签: html xpath css-selectors