通过jQuery设置CSS counter-increment

kth*_*oom 7 javascript css jquery counter css-counter

我想使用jQuery 在" " 上设置CSS counter-increment属性.demo:before.

问题是jQuery无法访问伪元素.另一个SO答案(我现在似乎无法找到)建议设置数据属性,然后在CSS中使用该值,但这也不起作用.这是可以实现的吗?

简化示例:http://jsfiddle.net/4h7hk8td/

HTML:

<ul class="demo">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

JS:

// 1) User Sets Unit Size
var myUnit = 100;

// 2) Unit size is saved via data attribute
$('.demo li').attr('data-unit', myUnit);
Run Code Online (Sandbox Code Playgroud)

CSS:

.demo {
    counter-reset: list;
}

.demo li:before {
    /* 3) CSS gets data attribute and applies as the increment. Not working :( */
    counter-increment: list attr(data-unit);
    content: counter(list);
}
Run Code Online (Sandbox Code Playgroud)

DRD*_*DRD 1

增加每个计数器的计数器li,而不是:before: http: //jsfiddle.net/7vt0kf2c/

var myUnit = 100;
$(".demo li").css("counter-increment", "list " + myUnit);
$("button").click(function(e) {
    $(".demo li").css("counter-increment", "list " + 200);    
});
Run Code Online (Sandbox Code Playgroud)