반응형
jQuery는 모든 텍스트 필드의 값의 합을 계산합니다.
수치가 포함된 30여개의 텍스트 필드가 포함된 주문서를 가지고 있습니다.저는 블러에 있는 모든 값의 합을 계산하고 싶습니다.
나는 모든 텍스트 필드를 선택하는 방법을 알고 있지만, 그것들을 순환하고 모든 값을 합산하는 방법은 알고 있지 않습니까?
$(document).ready(function(){
$(".price").blur(function() {
//loop and add up every value from $(".price").val()
})
});
$('.price').blur(function () {
var sum = 0;
$('.price').each(function() {
sum += Number($(this).val());
});
// here, you have your sum
});
프로젝트를 위해 좀 더 일반적인 복사/붙여넣기 기능이 필요합니다.
sumjq = function(selector) {
var sum = 0;
$(selector).each(function() {
sum += Number($(this).text());
});
return sum;
}
console.log(sumjq('.price'));
IE8을 지원할 필요가 없다면 네이티브 자바스크립트를 사용하면 됩니다.Array.prototype.reduce()
방법.먼저 JQuery 개체를 배열로 변환해야 합니다.
var sum = $('.price').toArray().reduce(function(sum,element) {
if(isNaN(sum)) sum = 0;
return sum + Number(element.value);
}, 0);
참조 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
마찬가지로 플러그인으로 작성된 답변의 행을 따라 다음과 같습니다.
$.fn.sum = function () {
var sum = 0;
this.each(function () {
sum += 1*($(this).val());
});
return sum;
};
기록상 1 * x가 크롬의 숫자(x)보다 빠릅니다.
다음 기능을 사용합니다.
$(".price").each(function(){
total_price += parseInt($(this).val());
});
이를 통해 해결할 수:
var total = 0;
$(".price").each( function(){
total += $(this).val() * 1;
});
$('.price').blur(function () {
var sum = 0;
$('.price').each(function() {
if($(this).val()!="")
{
sum += parseFloat($(this).val());
}
});
alert(sum);
});
이것은 100% 작동합니다.
<script type="text/javascript">
function calculate() {
var result = document.getElementById('result');
var el, i = 0, total = 0;
while(el = document.getElementById('v'+(i++)) ) {
el.value = el.value.replace(/\\D/,"");
total = total + Number(el.value);
}
result.value = total;
if(document.getElementById('v0').value =="" &&
document.getElementById('v1').value =="" &&
document.getElementById('v2').value =="" ) {
result.value ="";
}
}
}
</script>
Some number:<input type="text" id ="v0" onkeyup="calculate()">
Some number:<input type="text" id ="v1" onkeyup="calculate()">
Some number:<input type="text" id ="v2" onkeyup="calculate()">
Result: <input type="text" id="result" onkeyup="calculate()" readonly>
$(".price").each(function(){
total_price += parseFloat($(this).val());
});
이렇게 해보세요...
언급URL : https://stackoverflow.com/questions/2417553/jquery-calculate-sum-of-values-in-all-text-fields
반응형
'programing' 카테고리의 다른 글
사용자 수준 스레드는 어떻게 예약/생성되며 커널 수준 스레드는 어떻게 생성됩니까? (0) | 2023.10.09 |
---|---|
jquery에서 특정 속성 값을 가진 모든 요소 찾기 (0) | 2023.10.09 |
control.registerOnChange is not function" 오류의 원인 (0) | 2023.10.09 |
query_페이지가 작동하지 않는 posts (0) | 2023.10.09 |
Shared Object Module(lib*.so) 내용을 볼 수 있는 명령줄 (0) | 2023.10.09 |