为啥“div[class=mncls sbucls]”有效,而“div.mncls sbucls”无效?
Posted
技术标签:
【中文标题】为啥“div[class=mncls sbucls]”有效,而“div.mncls sbucls”无效?【英文标题】:Why does "div[class=mncls sbucls]" work whereas "div.mncls sbucls" doesn't?为什么“div[class=mncls sbucls]”有效,而“div.mncls sbucls”无效? 【发布时间】:2011-08-12 17:21:43 【问题描述】:以下 Jsoup 语句有效:
Elements divs = document.select("div[class=mncls sbucls]");
但是等价的说法:
Elements divs = document.select("div.mncls sbucls");
没用。
为什么?
Jsoup 有空格的类名有问题吗?
【问题讨论】:
【参考方案1】:类名不能有空格。这是一个 CSS 规范,与 Jsoup 无关。从技术上讲,mncls sbucls
是两个独立的类(mncls
和 sbucls
)。
属性选择器有效,因为您选择的是class
属性,其值为mncls sbucls
【讨论】:
【参考方案2】:空格是后代选择器:
http://www.w3.org/TR/CSS2/selector.html#descendant-selectors
在您的第二个示例中,当您将空格放在那里时,您表示另一个元素/类/选择器,而在您的第一个示例中,您将选择器显式分组为单个字符串(包括空格)。
【讨论】:
以上是关于为啥“div[class=mncls sbucls]”有效,而“div.mncls sbucls”无效?的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用 glTranslatef?为啥不直接更改渲染坐标?
为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?