如何获取附加变量jQuery

时间:2017-08-31 18:20:03

标签: jquery

如果我没有非常清楚地解释自己的话,请提前道歉。我相信我需要做的事情,如果我错了,请引导我朝着正确的方向前进,但我试图捕捉附加变量的总值。

HTML

 <input type="number" id="startingAmt" placeholder="Start Amount">
<input type="number" id="billAmt" placeholder="Bill Amount">
<button id="addBtn">Add</button>
<h4>
    Ending Amount: <i class="fa fa-usd"></i> 
    <span id="endingAmt">0</span>
  </h4>
  <ul id="myList">

  </ul

工作原理:在#startingAmt输入中输入一个数字,在#billAmt输入中输入一个数字。单击“添加”以将li附加到ul。当您单击#addBtn时,#billAmt输入中的任何内容都会放入li中。

JS(请记住,这是用于测试目的的所有文件)

    $('#addBtn').on("click", function() {
    var startingAmt = parseInt($('#startingAmt').val()) || 0;
    var billAmt = ($('#billAmt').val());
    var inputAmt = billAmt;
    var inputAmtTotal = 0;

    $('#myList').append("<li>" + billAmt + "</li>");

    $(inputAmt).each(function(){
        inputAmtTotal += parseInt($(this).val()) || 0;  

        $(endingAmt).text(inputAmtTotal - inputAmt);
    });

});

所以我想知道如何获得附加的每个billAmt的总价值。 我将billAmt =设置为#billAmt输入的值或输入,然后将变量billAmt设置为= inputAmt变量。 li附加了billAmt的值。然后我执行一个循环来捕获每个inputAmt左右我认为并且总动态将被动态计算并显示和替换&#39; 0&#39;在结尾Amt旁边。我可以将它作为一次性计算工作但是如何获得每个inputAmt的总值?结束Amount应该是startingAmt - inputAmtTotal,其中inputAmtTotal = inputAmt的总和。

我首先想到的是,一旦我使用billAmt值附加li,li的值将变为该数字,但在DOM中测试时似乎不是这种情况。也许有一种方法让li继承billAmt值,所以我可以在所有lis上执行循环?

请告知我是否有可能获得它或者有更好的方法。谢谢!

3 个答案:

答案 0 :(得分:0)

你应该这样做

var listItems = $('#myList li');
var i, sum = 0;

listItems.each(function() {
   sum += parseInt($(this).text());
});

答案 1 :(得分:0)

请参阅:https://jsfiddle.net/s9tujLwf/17/

你需要循环每个li,获取它的值,将它们加在一起,然后将这个总数从你的起始数量中取出来得到你剩下的数量。

var runningTotal = 0; // the total of all li's 
var startingAmount = $("#startingAmt").val(); // the left field

$("#myList li").each(function(){
    runningTotal += parseInt($(this).text());
});

$("#endingAmt").text(startingAmount - runningTotal); // how much you have left

答案 2 :(得分:-1)

我认为这应该有效。

var allLi = $('#myList li');
var sumOfLi = 0;
for(var i=0; i<allLi.length; i++){
  sumOfLi = sumOfLi + $(allLi[i]).text()*1;
}