2017-08-31 31 views
0

先进的道歉,如果我不是很清楚地解释我的自我。我相信我需要做的事情,如果我错了,请引导我朝着正确的方向发展,但我试图捕获附加变量的总价值。如何获得附加变量的价值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。点击add添加一个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变量。李添加了billAmt的值。然后我执行一个循环来捕获每个inputAmt,或者我认为总数将被动态计算并显示并替换结尾Amt旁边的'0'。我可以将其作为一次性计算工作,但是如何获得每个inputAmt的总值?结束金额应该是startingAmt - inputAmtTotal,其中inputAmtTotal = inputAmt的总和。

我之前想过,一旦我将li添加到billAmt值中,li的值就会变成这个数字,但在DOM中测试它时似乎并不是这样。也许有一种方法让li继承billAmt的值,这样我就可以对所有的lis执行循环了吗?

请指教这是甚至可能我有它,或者如果有更好的方法来做到这一点。谢谢!

回答

0

看到这个:https://jsfiddle.net/s9tujLwf/17/

您需要循环每个L1,得到它的价值,总结那些在一起,然后采取总远离你开始的金额来得到你剩下多少。 。

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 
+0

嘿,非常感谢你的工作!我感激你!我试图upvote但我没有足够高的排名:( –

-1

这应该工作,我认为。

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

试图用文字来概括不会产生正确的答案 - 项目与'100'&'200'将产生'100200' –

+0

@NafiulIslam使用$(allLi [1])文本()* 1; –

0

你应该做这个

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

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