我有一个功能需要从每个输入中总结,但同时每个输入必须显示百分比。我找到了总结价值的方法,但我有问题显示百分比。以下是HTML代码:
Price 1: <input type="text" name="price01" class="price" />
Percentage 1: <span class='p'></span>
<br/>
Price 2: <input type="text" name="price02" class="price" />
Percentage 2: <span class='p'></span>
<br/>
Price 3: <input type="text" name="price03" class="price" />
Percentage 3: <span class='p'></span>
<br/>
Price 4: <input type="text" name="price04" class="price" />
Percentage 4: <span class='p'></span>
<br/>
Total: <span class="total"></span>
我在互联网上找到的jquery代码:
$.fn.sumValues = function() {
var sum = 0;
this.each(function() {
if ( $(this).is(':input') ) {
var val = $(this).val();
} else {
var val = $(this).text();
}
sum += parseFloat( ('0' + val).replace(/[^0-9-\.]/g, ''), 10);
});
return sum;
};
$(document).ready(function() {
$('input.price').bind('keyup', function() {
$('span.total').html( $('input.price').sumValues() );
});
});
希望有人可以提供帮助......谢谢。
谢谢你们,伙计们。我想我已经解决了这个问题。它可能不是最好的解决方案,但我明白了它的确有效。再次感谢你:)
答案 0 :(得分:0)
我不知道javascript的sytax,所以我的答案可能不太有用,但你需要做的就是在你计算总数/总和之后,将每个值除以总数给你百分比和将该值放在适当的范围内。
希望即使没有任何实际代码也能提供帮助。
答案 1 :(得分:0)
这有效
$(document).ready(function() {
var $prices = $('input.price');
$prices.bind('keyup', function() {
var sum = $prices.sumValues();
$('span.total').html( sum );
$('.p').each(function(i,e){
$(e).text( $prices.eq(i).val() / sum );
});
});
});
基本上,每次触发keyup事件并且在调用sumValues
之后,您需要再次迭代这些元素以计算相应的百分比。
这绝不是最有效的解决方案,但它会在您完善工作时完成工作。