我正在尝试使用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>
有什么想法吗?
注意:我正在解析页面,所以我无法控制元素
答案 0 :(得分:2)
显然不可能使用CSS选择器。有了XPath,如果有人有兴趣:
//div[@id='information']/text()
答案 1 :(得分:2)
所以你想要#information
里面的松散文字,但是你不想要div
和span
?看起来很简单:
#information {
/* property values */
}
#information > div {
display: none; /* removes content of child div */
}
#information > span {
display: none; /* removes content of child span */
}
我猜你甚至不必使用孩子(>
)选择器。
答案 2 :(得分:1)
没有CSS选择器可以只选择元素的文本内容。这个想法没有什么不合逻辑的(CSS 可能有一个伪元素用于此目的),但目前在这些问题上没有规范甚至草案。
您可以做的是在元素上设置样式,然后在任何子元素上覆盖它们,可能使用匹配所有子元素的#information *
选择器或匹配所有子元素的#information > *
。