如何添加使用jquery.load()插入的值

如何添加使用jquery.load()插入的值,jquery,load,addition,Jquery,Load,Addition,我使用jquery.load插入了一些值。我想将这些值相加,并将结果显示在div(或span)中。下面是我用来插入值(数字,但仅作为纯文本)的代码: 在结束正文标签上方:我有: $( "#result1" ).load( "mypage.php?f=15 .threadcount" ); $( "#result2" ).load( "mypage.php?f=16 .threadcount" ); $( "#result3" ).load( "mypage.php?f=25 .threadcou

我使用jquery.load插入了一些值。我想将这些值相加,并将结果显示在div(或span)中。下面是我用来插入值(数字,但仅作为纯文本)的代码:

在结束正文标签上方:我有:

$( "#result1" ).load( "mypage.php?f=15 .threadcount" );
$( "#result2" ).load( "mypage.php?f=16 .threadcount" );
$( "#result3" ).load( "mypage.php?f=25 .threadcount" );
$( "#result4" ).load( "mypage.php?f=18 .threadcount" );    
并使用以下命令在页面上进一步显示这些值:

<div id="result1"></div>, <div id="result2"></div>... etc.
。。。等
将它们相加,显示我尝试使用的总数

但这给了我“$NaN”作为我的总价值。我假设是因为它在求和的同时加载那个值?或者它无法识别frm中的文本位。是否以数字形式加载

我也尝试过修改代码,比如在answer中使用的代码,它在表单输入被输入时添加值,但我也没有成功

非常感谢你给我的建议

所有这些
.load()
操作都是异步的。这意味着他们将在未来某个时候完成。你必须等到它们全部完成,直到你能正确地计算出你的总数。我将添加一些示例代码,说明如何做到这一点

var cnt = 0;
function done() {
    --cnt;
    if (cnt <= 0) {
        // all requests done now
        // put code here to calculate your sum
    }
}

cnt = 4;
$( "#result1" ).load( "mypage.php?f=15 .threadcount" , done);
$( "#result2" ).load( "mypage.php?f=16 .threadcount" , done);
$( "#result3" ).load( "mypage.php?f=25 .threadcount" , done);
$( "#result4" ).load( "mypage.php?f=18 .threadcount" , done);

您可以使用延迟对象来完成此任务,如下所示:

var 
d1 = $.get( "mypage.php?f=15", function(data) { $("#result1").html( $(data).find(".threadcount") ); }),
d2 = $.get( "mypage.php?f=16", function(data) { $("#result2").html( $(data).find(".threadcount") ); }),
d3 = $.get( "mypage.php?f=25", function(data) { $("#result3").html( $(data).find(".threadcount") ); }),
d4 = $.get( "mypage.php?f=18", function(data) { $("#result4").html( $(data).find(".threadcount") ); });

$.when( d1, d2, d3, d4 ).then( function() {
    var sum = +$('#result1').text() + $('#result2').text() + $('#result3').text() + $('#result4').text();
});

我想你的意思是你的变量是d1,d2,d3,d4,不是所有的d1。谢谢你的回复。两种方法我都试过,但我在这方面的技能有限!我想我会接受你的第一个建议,但我还是得到了$NaN,总金额应该是多少。这是我使用的代码(你的代码加上我计算总和的尝试)(哎呀,忘记回车键发送注释)
var cnt=0;函数done(){--cnt;如果(cnt抱歉,我不知道我在这里输入代码时做错了什么!使用了反勾号,但没有很好地显示出来。仍然掌握着这个系统的窍门。@Jo_pinkish-你不能在注释中放入多行代码。它根本不可读。如果你需要共享一些多行代码,你可以使用编辑链接将其添加到答案的末尾(正确格式化为代码,并解释添加它的原因)然后在此处添加一条针对您想要查看的个人的注释,将其指向该编辑,以便他们注意到。@Jo_pinkish-如果您得到的是
NaN
,那么很明显,在进行求和时,您没有正确查找或解析数字。一些基本调试已经就绪。请使用
console.log()
检查中间值,查看得到的中间值,尝试找出发生的情况。
var 
d1 = $.get( "mypage.php?f=15", function(data) { $("#result1").html( $(data).find(".threadcount") ); }),
d2 = $.get( "mypage.php?f=16", function(data) { $("#result2").html( $(data).find(".threadcount") ); }),
d3 = $.get( "mypage.php?f=25", function(data) { $("#result3").html( $(data).find(".threadcount") ); }),
d4 = $.get( "mypage.php?f=18", function(data) { $("#result4").html( $(data).find(".threadcount") ); });

$.when( d1, d2, d3, d4 ).then( function() {
    var sum = +$('#result1').text() + $('#result2').text() + $('#result3').text() + $('#result4').text();
});