对于上下文,这是an earlier question的后续内容。我不想挖掘cssRules
,而是将逻辑建立在搜索这些规则的效果的jQuery选择器上。
给出
的默认属性.commentarea .author:before {
background-image: url(http://...);
background-position: -9999px -9999px;
/* ... */
}
有选择地修改
.author[href$="gbacon"]:before /* ... */ {
content: "";
background-position: 0 -140px
}
如何选择各自背景位置具有默认值的伪元素?复制选择器,如
GM_log("size = " + $(".commentarea .author:before").size());
什么都不匹配。使用
尝试.siblings()
$(".commentarea .author")
.map(function(i) {
GM_log($(this)
.siblings()
.map(function (i) { return $(this).css("background-image") })
.get()
.join(", "))
});
仅生成none
个值。
有关详细信息,请参阅live page。这可能吗?
答案 0 :(得分:6)
您无法使用此类:before
和:after
伪元素。它们的目的是在您指定的选择器之前和之后插入内容。
使用示例:
HTML:
<span class='a'>
Outer
<span class='b'>
Inner
</span>
</span>
CSS:
.a .b:before {
content: "|Inserted using :before|";
}
.a {
color: blue;
}
.b {
color: red;
}
<强>结果:强>
发生的事情是文本|Inserted using :before|
之前(嗯,真的,预先插入)内部跨度,因为它是类b
和类a
元素的后代。基本上,:before
和:after
不会选择;他们修改了。
示例:强>
这不能按预期工作:
HTML:
<span class='a'>
<p>More text</p>
<span class='b'>
<p>More text</p>
Inner
</span>
</span>
CSS:
.a .b:before {
text-size: 100px;
}
什么都没发生:
修改强>
:before
不是有效的jQuery选择器:http://api.jquery.com/category/selectors/
我认为您需要使用:before
之外的其他内容或尝试使用jQuery插件提取原始规则:http://flesler.blogspot.com/2007/11/jqueryrule.html