带有 ID 的表中 TD 的 CSS 选择器

Posted

技术标签:

【中文标题】带有 ID 的表中 TD 的 CSS 选择器【英文标题】:CSS Selector for a TD in a Table with an ID 【发布时间】:2012-04-16 17:24:22 【问题描述】:

我有一个 ID 为 thetablehtml 表。它有(根据 FireBug)、一个未命名的 TBODY 标签和一个未命名的 TR 标签。我要访问的三个 TD 标签是未命名的。是否有任何 CSS 选择器可以用来引用这些未命名的 tr 标签?

我试过了:

table#thetable:nth-child(1)

但这不会选择那些标签。

我正在使用jsoup.org 将这些数据提取到字符串中。我想获取表中每个 TD 的文本(我知道它的名称)并将所有内容放入一个数组中。

类似这样的:

// Pseudocode for all the TDs into an array
Elements strings = doc.select("table#thetable: children");

【问题讨论】:

nth-child 在您的示例中指的是其父级(而不是表的子级)的第 n 个子级的表。 【参考方案1】:

我认为这就是您要寻找的。这针对第一行 TD 单元格,不包括标题行:

http://jsfiddle.net/ckaufman/hGRwc/1/

table#thetable tr:nth-child(1) td /*Edit Here*/ 

我在 CSS 中为你添加了一些其他示例

【讨论】:

【参考方案2】:

如果您只是想获取所有 td 元素,这应该足够了:

Elements elems = doc.select("table#thetable td");

然后迭代elems,从您的tds 中检索文本并将它们放入您的数组中。

此外,如果您不知道或无法控制表格将包含多少个单元格,您可能应该使用数组列表而不是数组:

Elements elems = doc.select("table#thetable td");
List<String> strings = new ArrayList<String>();

for (Element e : elems) 
    strings.add(e.text());

【讨论】:

谢谢。您不需要添加第二部分 :) 我只是在弄清楚如何使用 Jsoup 中的 CSS 选择器获取所有表格元素时遇到了麻烦。再次感谢和抱歉,我应该从一开始就清楚解析部分。 没问题。我从来没有写过任何 Java 代码,所以我只是借此机会......修改;)【参考方案3】:

您只想访问所有单元格?

#thetable td

还是只想访问第一行?

#thetable tr:first-of-type td

【讨论】:

我可能还应该说我正在使用 Jsoup 解析 Java 中的 HTML。那会产生一个数组吗? @Mark Lyons:是的。即使没有匹配的元素,列表也应该为空,但不能为空。 对不起,我应该更具体一些。请看一下我刚刚所做的编辑。 这就是我所拥有的:Elements table = doc.select("#thetable tr:first-of-type td"); @MarkLyons:有效吗?编辑:你有一个额外的tr。这是故意的吗?

以上是关于带有 ID 的表中 TD 的 CSS 选择器的主要内容,如果未能解决你的问题,请参考以下文章

带有输入元素的td的css选择器[重复]

使用 CSS 选择器通过 selenium 访问特定的表行

jQuery中的一些选择器

锋利的jQuery学习笔记之jQuery选择器

CSS基础总结 选择器

jQuery - 选择器