Jquery - 添加特定 class 范围内的所有数字
Jquery - Adding all numbers inside span of a particular class
我正在为这个问题挠头,我可以做 div 的常规内容 + jquery 中另一个 div 添加的内容,但我不确定我该怎么做将页面上特定跨度的所有实例的内容加在一起。基本上我可以使用 jquery 和 ajax 将信息提取到其中的页面,它提取 select 月份的发票并在每一行中显示它们。我想要做的是将行与 class 'grandtotal' 一起添加,这样我就可以显示该月所有发票的每月发票总额,但我不确定如何添加 'grandtotal' + 'grandtotal' 等当我不知道每次将生成多少个跨度实例时,我不知何故需要从页面上当前的每个 'grandtotal' 实例中获取数字,然后在 div 'monthlytotal' 中显示它。这是从 ajax.
中提取每个发票行的代码
$.getJSON('select.php', {monthyear: $(this).val()}, function(data){
var invoicerow = '';
for (var x = 0; x < data.length; x++) {
if (data[x]['datepaid'] == '0000-00-00'){datepaid = '<span style="color:red;">Not Paid</span>'}else{datepaid = data[x]['datepaid']};
invoicerow += '<tr><td>' + data[x]['invoiceID'] + '</td><td>' + data[x]['customerID'] + '</td><td>' + data[x]['date'] + '</td><td>£' + '<span class="grandtotal">' + data[x]['grandtotal'] + '</span>' + '</td><td>' + '<a target="_NEW" href="../salesmanager/viewinvoice.php?&salesID=' + data[x]['salesID'] + '">View Invoice</a></td><td>' + datepaid + '</td></tr>';
}
$('#summarycontent').html(invoicerow);
$("select").select2();
编辑>>>>>
好的,到目前为止我都在这里,这有效,但问题是它在前一个月成倍增加.....所以当页面加载 select 框时,它说 Total: ,当它首先按下并说 select Januaury 它说 £0 ,然后 select feb 并且你得到 £1860 ,但事实是那是 Januarys total 而不是 Feb's ,febs total 是 £0 ,所以它好像结果一直落后一分。
<script>
$(document).ready(function(){
$('#selectmonth').on('change', function (){
var sum = 0;
$('.grandtotal').each(function(){
sum += parseFloat($(this).text());
});
$('#total_price').text('£' + sum);
});
});
</script>
好的,这似乎有效:
<script>
$(document).ready(function(){
$('#invoices').bind('DOMNodeInserted DOMNodeRemoved', function() {
var sum = 0;
$('.grandtotal').each(function(){
var tal = $(this).text();
if(isNaN(tal)) {
sum += 0;
}else{
sum += parseFloat($(this).text());};
});
$('#total_price').text('£' + sum);
});
});
</script>
我正在为这个问题挠头,我可以做 div 的常规内容 + jquery 中另一个 div 添加的内容,但我不确定我该怎么做将页面上特定跨度的所有实例的内容加在一起。基本上我可以使用 jquery 和 ajax 将信息提取到其中的页面,它提取 select 月份的发票并在每一行中显示它们。我想要做的是将行与 class 'grandtotal' 一起添加,这样我就可以显示该月所有发票的每月发票总额,但我不确定如何添加 'grandtotal' + 'grandtotal' 等当我不知道每次将生成多少个跨度实例时,我不知何故需要从页面上当前的每个 'grandtotal' 实例中获取数字,然后在 div 'monthlytotal' 中显示它。这是从 ajax.
中提取每个发票行的代码 $.getJSON('select.php', {monthyear: $(this).val()}, function(data){
var invoicerow = '';
for (var x = 0; x < data.length; x++) {
if (data[x]['datepaid'] == '0000-00-00'){datepaid = '<span style="color:red;">Not Paid</span>'}else{datepaid = data[x]['datepaid']};
invoicerow += '<tr><td>' + data[x]['invoiceID'] + '</td><td>' + data[x]['customerID'] + '</td><td>' + data[x]['date'] + '</td><td>£' + '<span class="grandtotal">' + data[x]['grandtotal'] + '</span>' + '</td><td>' + '<a target="_NEW" href="../salesmanager/viewinvoice.php?&salesID=' + data[x]['salesID'] + '">View Invoice</a></td><td>' + datepaid + '</td></tr>';
}
$('#summarycontent').html(invoicerow);
$("select").select2();
编辑>>>>>
好的,到目前为止我都在这里,这有效,但问题是它在前一个月成倍增加.....所以当页面加载 select 框时,它说 Total: ,当它首先按下并说 select Januaury 它说 £0 ,然后 select feb 并且你得到 £1860 ,但事实是那是 Januarys total 而不是 Feb's ,febs total 是 £0 ,所以它好像结果一直落后一分。
<script>
$(document).ready(function(){
$('#selectmonth').on('change', function (){
var sum = 0;
$('.grandtotal').each(function(){
sum += parseFloat($(this).text());
});
$('#total_price').text('£' + sum);
});
});
</script>
好的,这似乎有效:
<script>
$(document).ready(function(){
$('#invoices').bind('DOMNodeInserted DOMNodeRemoved', function() {
var sum = 0;
$('.grandtotal').each(function(){
var tal = $(this).text();
if(isNaN(tal)) {
sum += 0;
}else{
sum += parseFloat($(this).text());};
});
$('#total_price').text('£' + sum);
});
});
</script>