我正在尝试使result
函数在item
的每个实例上运行。 result
应该是percentage
的{{1}}。当我使用value / max
和value
作为变量时,该函数无法运行。
max
$(".list").each(function() {
var value = $(this)
.closest(".item")
.find(".value")
.val();
var max = $(this)
.closest(".item")
.find(".max")
.val();
var result = parseInt($(value) * 100) / parseInt($(max));
if (!isFinite(result)) result = 0;
$(".percent").val(result);
});
答案 0 :(得分:2)
value
和max
只是包含要用于计算的字符串值的变量。
替换
var result = parseInt($(value) * 100) / parseInt($(max));
通过
var result = parseInt(value) * 100 / parseInt(max);
答案 1 :(得分:1)
感谢@mridula的回答 请尝试考虑
$(".list .item").each(function() {
const item = $(this);
const value = item
.find(".value")
.val();
const max = item
.find(".max")
.val();
let result = parseInt(value * 100) / parseInt(max);
if (!isFinite(result)) result = 0;
item.find('.percent').val(result);
});
答案 2 :(得分:0)
您无法获得两个值之间的百分比差异来自上述答案,因为您只是在获取与其他值比较的第一个值的百分比
尝试这个
$(".item").each(function(element) {
var v1 = $(this).find("input.value").val();
var v2 = $(this).find("input.max").val();
var maxV =Math.max(parseInt(v1),parseInt(v2));
var minV =Math.min(parseInt(v1),parseInt(v2));
var difV =maxV- minV;
var result = (difV * 100) / maxV;
$(this).find("input.percent").val(result);
});