2017-08-31 40 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()); 
});