带有 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 为 thetable
的 html 表。它有(根据 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
,从您的td
s 中检索文本并将它们放入您的数组中。
此外,如果您不知道或无法控制表格将包含多少个单元格,您可能应该使用数组列表而不是数组:
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 选择器的主要内容,如果未能解决你的问题,请参考以下文章