对于上下文,这是
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(",")) });
不产生任何值.
有关详细信息,请参阅live page.这是可能吗?
解决方法
你不能使用这样的:before和:之后的伪元素.它们的目的是在(分别)您指定的选择器之前和之后插入内容.
使用示例
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; }
结果:
发生了什么是文本|插入使用:before |被插入之前(嗯,真的,进入)内部跨度,因为它是class b和a类元素的后代.基本上:之前和之后不要选择;他们修改.
例:
这不按预期工作:
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; }
什么都没发生:
编辑:
:之前不是一个有效的jQuery选择器:http://api.jquery.com/category/selectors/
我想你将需要使用以下之类的东西:之前或尝试使用jQuery插件提取原始规则:http://flesler.blogspot.com/2007/11/jqueryrule.html