2010-03-30 52 views
1

這可能是一個簡單的問題,雖然無法弄清楚如何去做。Jquery和XML - 如何添加節點的值

我用Jquery Ajax解析XML。它包含日期和價格

的XML看起來像

<rate> 
<date>Today</date> 
<price>66</price> 
</rate> 
<rate> 
<date>Tomorrow</date> 
<price>99</price> 
</rate> 

我只是想弄清楚如何計算天今天和明天兩者的總價。認爲,通過使用Javascript號碼將只返回節點的總價值..

$(xml).find("rate").each(function() 
{ 
    $(this).find("price").each(function() 
    { 
    $("#TOTALPRICE").append(Number($(this).text())); 
    } 

} 
//output is: 6699 

然而,it's只是串聯貨值均沒有加入他們。

//output is: 6699 

我非常感謝您的幫助!

感謝

回答

1

,如果你只是在中間使用的JavaScript變量,將讓你你想要的結果。

var myTotal = 0; 
    $(xml).find("rate").each(function() 
    { 
     $(this).find("price").each(function() 
     { 
     mytotal = mytotal + Number($(this).text());  
     } 

    } 
    $("#TOTALPRICE"). append(myTotal); 
0

附加不會添加,它會簡單地添加文本。如果#TOTALPRICE只包含總,你可以做到以下幾點:

$(xml).find("rate").each(function() 
{ 
    $(this).find("price").each(function() 
    { 
     var current = parseInt($("#TOTALPRICE")); 
     current += parseInt($(this).text()); 
     $("#TOTALPRICE").html(current); 
    } 
} 

如果#TOTALPRICE需要追加到末尾的內容,因爲它包含其他內容,然後發表Avitus的解決方案應爲你工作。

0

jQuery的append將插入內容到由選擇器匹配的每個元素的末尾。這意味着當你追加'66'時,它將被添加到元素中。你需要跟蹤的總的Avitus介紹,那麼你可能想使用jQuery的text功能設置TOTALPRICE的內容,就像這樣:

$("#TOTALPRICE").text(myTotal); 
0

明白了人!我只是在「每個」中定義Var。覆蓋每個循環上變量的值:

$(xml).find("rate").each(function() 
{ 
    var myTotal = 0; 
    $(this).find("price").each(function() 
    { 
    mytotal = mytotal + Number($(this).text());  
    } 

} 

$(「#TOTALPRICE」)。追加(myTotal);

非常感謝,本網站絕對搖滾!