我有非常簡單明確的問題。我已經動態創建輸入字段:如何獲取所有輸入字段的總和()id從同一個字符串開始
id=pend_1, id=pend_2 .....id=pend_14
我需要得到總和(所有這些ID從pend_ *開始輸入字段)?
更加清晰,請看圖:
有沒有把所有的輸入字段的總和()的任何最簡單的方法?
在這種情況下,用戶會把值在文本字段和jQuery將計算的onblur()事件的總和()...
我有非常簡單明確的問題。我已經動態創建輸入字段:如何獲取所有輸入字段的總和()id從同一個字符串開始
id=pend_1, id=pend_2 .....id=pend_14
我需要得到總和(所有這些ID從pend_ *開始輸入字段)?
更加清晰,請看圖:
有沒有把所有的輸入字段的總和()的任何最簡單的方法?
在這種情況下,用戶會把值在文本字段和jQuery將計算的onblur()事件的總和()...
更好添加單個類所有這些領域,如
的<輸入類型= 「文本」 級= 「sum_item」 ID = 「pend_1」/>
< INPUT TYPE = 「文本」 類= 「sum_item」 ID = 「pend_2」/>
而使用以下代碼來總結起來
var sum=0;
$('.sum_item').each(function(){
var item_val=parseFloat($(this).val());
if(isNaN(item_val)){
item_val=0;
}
sum+=item_val;
$('#total').val(sum.toFixed(2));
});
你的解決方案是少量資源飢餓,但它是我的問題的一個夢幻般的解決方案。 –
$("[id^=AAA_][id$=_BBB]")
這將返回所有的元素,所有指定的屬性相匹配過濾器:
[id^=AAA_] matches elements with id attribute starting with AAA_,
和[id$=_BBB] matches elements with id attribute ending with _BBB.
希望這可以幫助。
讓我檢查一下我的問題。我希望它工作 –
是的,你可以用下面的代碼得到它,
let sum = $("input[id^='pend_'][type='text']").get()
.reduce((res, elm) => (res + (+elm.value)), 0);
使用元素的starts with selector
然後get()
數組表示,然後reduce
它的總和。
這是非常簡單的解決方案,如果工作,讓我在第一個之後嘗試。 –
假設有Div的與id="test_1", id="test_2"
數量等......,您可以使用下面的方法
var count = ($("div[id^='test']").length
連續服用總和你寫匿名函數,它接受的結果得到的計數和元素作爲參數作爲@Rajaprabhu Aravindasamy提到的解決方案是正確的,
但一個小的變化,如果輸入型已NaN的值,然後將其轉換爲0這裏是稍加修改的代碼,你可以在此使用||
運營商如果該值爲例如NaN,則默認返回0。let a = $('#a').val() || 0;
var sum = $("input[id^='test'][type='text']")
.get()
.reduce((res, elm) =>
(res + (+elm.value || 0)), 0);
希望這有助於
@RajaPrabhu AravindaSamy,只是一個小建議,加||值爲0的運算符在加起來時將返回0,因爲這會給出整數值的結果而不是返回NaN。 –
好點。但我認爲,向提問者提出一個基本的想法會讓他自己寫出他的全部要求。 –
@Rajaprabhu Aravindasamy我剛剛檢查了一個字符串只有一個輸入類型,整個返回null,所以我試着用這個解決方案。 –
$('input[id^="pend_"][type="text"]').on('input',function(){
var sum = 0;
$('input[id^="pend_"][type="text"]').each(function(){
var valu = $(this).val() == '' ? 0 : $(this).val();
if(!isNaN(valu))
{
sum = sum + parseFloat(valu);
}
});
$('label').text(sum);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="pend_1" ><br/>
<input type="text" id="pend_2" ><br/>
<input type="text" id="pend_3" ><br/>
<input type="text" id="pend_4" ><br/>
<input type="text" id="pend_5" ><br/>
Result:<label id="result" value="label"> </label>
使用'$('[ID^=」文本」]「)'選擇所有以相同的文本開始ID – guradio
你可以有相同的'.class'對於這樣的輸入,然後使用'$ .each'來迭代和求和他們每個人 –
@SandeepNayak我欣賞你的想法...我想測試這個。 –