Jquery CSS选择器的工作原理
如果我有一个CSS定义为Jquery CSS选择器的工作原理,jquery,html,css,Jquery,Html,Css,如果我有一个CSS定义为 .grid .data table tr.selected td [class^="icon-"], .grid .data table tr.selected td [class*=" icon-"] { background-image: url("../img/css-sprites.png"); } 它到底是如何工作的?我的意思是,如果满足条件(tr的类被选中,并且它有一个子td,它的任何子元素的类包含名称“icon-”) 我的问题是“到”背景图像将应
.grid .data table tr.selected td [class^="icon-"], .grid .data table tr.selected td [class*=" icon-"] {
background-image: url("../img/css-sprites.png");
}
它到底是如何工作的?我的意思是,如果满足条件(tr的类被选中,并且它有一个子td,它的任何子元素的类包含名称“icon-”)
我的问题是“到”背景图像将应用于哪个元素?每个选择器中的最后一个元素将接收背景url
[class*=“icon-”]
并且[class^=“icon-”]
css规则将应用于与选择器匹配的每个元素。因此,每个元素的类名以图标-
开头,并带有指定的父元素,将获得该背景图像
另外,请注意有两条规则,用逗号分隔:
.grid .data table tr.selected td [class^="icon-"],
.grid .data table tr.selected td [class*=" icon-"]
多个选择器意味着一个或另一个需要匹配才能应用规则
属性匹配选择器^=
表示“以开头”<代码>*=表示“包含”。请按照第一条评论的链接,了解有关特定类型选择器的更多信息:(谢谢)
这也是一个很好的解读:什么时候背景图像将应用于所有的应用程序
当我们使用,
(逗号)来指定选择器时,我们说…这个,这个和这个将具有相同的样式
,或者换句话说,这些逗号分隔的元素将具有相同的指定样式,因此样式将应用于每个元素
Wehn将背景图像应用于一个元素
由于您问题中的代码在元素之间并没有逗号,所以您正在连续定义彼此的子元素,所以您指定的最后一个子元素是td[class*='icon-]
,所以所有包含icon-
字母的类的tds都将获得应用于它们的样式。“^=”
在这种情况下,将样式应用于具有从图标-
开始的类的元素,并且是td
的子元素,该子元素是
"*="
逗号后面的“*=”
部分定义了任何类,其中包含“icon-”
,以及td
的child
,并且您各自的树适用于样式,您在这里错过了什么还不清楚。它是一个很长(而且很昂贵)的选择器,但这里没有陷阱。对于具有类的元素class^=“icon-”
。这与jQuery有什么关系?它将应用于td
中的所有元素tr中的元素。选中的元素在。。(等)。。其类包含图标-
。第一个选择器表示class属性以图标-
开头,第二个选择器表示class属性包含`icon-,因此带有`class=“foo icon bar”
的内容将在trueJquery使用时进行测试:-“注意,我消除了额外的空白。”不,不要这样做。谢谢,我编辑了我的帖子