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上执行循环?
请告知我是否有可能获得它或者有更好的方法。谢谢!
答案 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;
}