字母数字混合的多个 div 的总和
SUM of multiple divs that are alpha numeric mixed
我有一组属于同一个 class 的 div,它们的值为 ( X1 ), ( X2 ),...
我只想添加它们的数值,例如 1 + 2 +...。这些 div 将动态创建,所以我不知道会有多少。我怎样才能做到这一点?我已经尝试了以下但它不起作用。如何将“(”、"X" 和“)”与数字分开并将数字相加?
<div class="test"> ( X1 )</div>
<div class="test"> ( X2 )</div>
<div class="test"> ( X3 )</div>`
$(function() {
var sum = 0;
$('div.test').each(function(){
sum += parseInt(this.innerHTML, 10)
})
$('#sumPlace').text(sum);
})
您可以将每个元素的文本映射回去,删除任何不是数字的内容,并将字符串转换为数字。
这会得到一个数字数组,可以用 Array.reduce
相加
var sum = $('div.test').map(function() {
return +$(this).text().replace(/\D/g,'');
}).get().reduce(function(a, b) {
return a + b;
}, 0);
试试这个,
var sum = 0;
$('div.test').each(function(){
sum += parseInt(this.innerHTML.replace(/\D/g,'').trim(), 10)
})
$('#sumPlace').text(sum);
$(function() {
var sum = 0;
$('div.test').each(function() {
sum += parseInt(this.innerHTML.replace(/\D/g, '').trim(), 10)
})
$('#sumPlace').text(sum);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">( 5 )</div>
<div class="test">( 10 )</div>
<div class="test">( 55 )</div>`
<div id="sumPlace"></div>
我有一组属于同一个 class 的 div,它们的值为 ( X1 ), ( X2 ),... 我只想添加它们的数值,例如 1 + 2 +...。这些 div 将动态创建,所以我不知道会有多少。我怎样才能做到这一点?我已经尝试了以下但它不起作用。如何将“(”、"X" 和“)”与数字分开并将数字相加?
<div class="test"> ( X1 )</div>
<div class="test"> ( X2 )</div>
<div class="test"> ( X3 )</div>`
$(function() {
var sum = 0;
$('div.test').each(function(){
sum += parseInt(this.innerHTML, 10)
})
$('#sumPlace').text(sum);
})
您可以将每个元素的文本映射回去,删除任何不是数字的内容,并将字符串转换为数字。
这会得到一个数字数组,可以用 Array.reduce
var sum = $('div.test').map(function() {
return +$(this).text().replace(/\D/g,'');
}).get().reduce(function(a, b) {
return a + b;
}, 0);
试试这个,
var sum = 0;
$('div.test').each(function(){
sum += parseInt(this.innerHTML.replace(/\D/g,'').trim(), 10)
})
$('#sumPlace').text(sum);
$(function() {
var sum = 0;
$('div.test').each(function() {
sum += parseInt(this.innerHTML.replace(/\D/g, '').trim(), 10)
})
$('#sumPlace').text(sum);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">( 5 )</div>
<div class="test">( 10 )</div>
<div class="test">( 55 )</div>`
<div id="sumPlace"></div>