我需要计算当前值的百分比以将其附加到条宽:
<div class="bar"><span class="bar-inside" data-value="120"></span></div>
<div class="bar"><span class="bar-inside" data-value="1320"></span></div>
<div class="bar"><span class="bar-inside" data-value="670"></span></div>
我需要找到最大值(在这种情况下它将是1320),这将是100%并且取决于计算其他条宽度的百分比。
谢谢!
答案 0 :(得分:3)
var max = 0;
$('.bar').each(function() {
max = Math.max(max, $('.bar-inside', this).data('value'));
})
.css('width', function() {
return ($('.bar-inside', this).data('value') * 100 / max) + '%';
});
答案 1 :(得分:1)
这应该这样做:(fiddle)
var max = 0;
$('.bar-inside').each(function(){ max = Math.max(max, $(this).data("value")); });
答案 2 :(得分:1)
使用map
功能,然后使用Math.max
。
var values = $.map($("span.bar-inside"), function(el, index) { return parseInt($(el).data('value')); });
var max = Math.max.apply(null, values);
上面的将输出预期结果的1320
。
答案 3 :(得分:0)
var max = -Infinity;
var maxEle = $(".bar").each(function() {
if (+this.attr('data-value') > max) +this.attr('data-value', max) ;
}).filter(function() {
return this.attr('data-value') == max;
});
if (maxEle.length > 1) maxEle = maxEle.eq(Math.floor(Math.random() * maxEle.length));