0

这是我的代码

var pollPercent = function() {
    $("#poll li").each(function(){
            var percent = $(this).attr("data-percent");
            var width = (percent / 100) * 1000;
            var el = $(this);
            $("head").append("<style>" + el + ":before {width: " + width + "px;}</style>");
    });
};

pollPercent();

那么我如何指向每个 li 并更改其“伪元素之前”

4

2 回答 2

0

您可以使用nth-child来获取单个li元素。该each功能有助于提供索引。

$(...).each(function(index, element) {
   ... "li:nth-child(" + index + "):before" ...
})
于 2013-08-15T01:47:35.130 回答
0

尝试这个:

var text = $('#poll').find('li').map(function (i) {
    var width = Math.round($(this).attr('data-percent') / 100 * 1000);
    return '#poll li:nth-child(' + (i+1) + ')::before { width: ' + width +  'px; }';
}).join('');

$(document.body).append('<style>' + text + '</style>');
于 2013-08-15T01:48:29.527 回答