CSS仅获取文本[重复]
Posted
技术标签:
【中文标题】CSS仅获取文本[重复]【英文标题】:CSS only get text [duplicate] 【发布时间】:2013-12-18 14:25:48 【问题描述】:我正在尝试使用 css 选择器在元素内查找一些文本,但不包括元素的子元素。例如:
<div id="information">
This is the text I need
<div>I don't want this text</div>
<span>I also don't want this</span>
</div>
有什么想法吗?
注意:我正在解析页面,因此我无法控制元素
【问题讨论】:
这不能单独使用 CSS,抱歉。 ***.com/questions/1520429/css-3-content-selector 将文本放入SPAN并定位SPAN @Rob 如果你在解析一个页面,使用xpath,那么你可以得到文本。 @Rob 看到这个问题:***.com/questions/5033955/xpath-select-text-node 知道了。只需要使用文本()。谢谢大家! 【参考方案1】:所以您想要#information
中的松散文本,但您不想要div
和span
?看起来很简单:
#information
/* property values */
#information > div
display: none; /* removes content of child div */
#information > span
display: none; /* removes content of child span */
我猜你甚至不必使用子 (>
) 选择器。
【讨论】:
我不认为这“给”你那个内容......我的意思是它不会选择或存储它,以便你可以用它做一些事情。我认为这就是 OP 想要的……我可能是错的。杰斯,你知道怎么做吗?我想自己知道。【参考方案2】:没有 CSS 选择器可以仅选择元素的文本内容。这个想法没有什么不合逻辑的(CSS 可以为此目的有一个伪元素),但目前还没有关于这些问题的规范甚至草案。
您可以做的是在元素上设置样式,然后在任何子元素上覆盖它们,可能使用匹配所有后代元素的#information *
或匹配所有子元素的#information > *
之类的选择器。
【讨论】:
【参考方案3】:显然不可能使用 CSS 选择器。不过,如果有人对 XPath 感兴趣:
//div[@id='information']/text()
【讨论】:
以上是关于CSS仅获取文本[重复]的主要内容,如果未能解决你的问题,请参考以下文章