获取两个值之间的百分比差异(多个实例)

时间:2019-01-12 04:14:03

标签: jquery

我正在尝试使result函数在item的每个实例上运行。 result应该是percentage的{​​{1}}。当我使用value / maxvalue作为变量时,该函数无法运行。

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);
});

3 个答案:

答案 0 :(得分:2)

valuemax只是包含要用于计算的字符串值的变量。

替换

 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);      

});