为什么“div[class=mncls sbucls]”是工作,而“div.mncls sbucls”则工作不是吗?
以下 Jsoup 语句有效:
Elements divs = document.select("div[class=mncls sbucls]");
但等效的语句:
Elements divs = document.select("div.mncls sbucls");
无效。
为什么?
Jsoup 是否存在包含空格的类名问题?
The following Jsoup statement works:
Elements divs = document.select("div[class=mncls sbucls]");
But the equivalent statment:
Elements divs = document.select("div.mncls sbucls");
Doesn't work.
Why?
Does Jsoup have a problem with class names that have spaces?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
空格是后代选择器:
http://www.w3.org/ TR/CSS2/selector.html#descendant-selectors
在第二个示例中,当您将空格放在那里时,您表示另一个元素/类/选择器,而在第一个示例中,您明确地将选择器转换为单个字符串(包括空格)。
A space is a descendent selector:
http://www.w3.org/TR/CSS2/selector.html#descendant-selectors
In your second example, when you put the space in there, you're denoting another element/class/selector, whereas in your first example you're explicitly grouping the selector into a single string (including the space).
类名不能有空格。这是一个 CSS 规范,与 Jsoup 无关。从技术上讲,
mncls sbucls
是两个独立的类(mncls
和sbucls
)。属性选择器之所以有效,是因为您选择的是值为
mncls sbucls
的class
属性Class names can not have a space. It's a CSS Specification, nothing to do with Jsoup. Technically
mncls sbucls
is two separate classes (mncls
andsbucls
).The attribute selector works because you're selecting the
class
attribute where the value ismncls sbucls