2010-03-30 2 views
1

Это может быть простой вопрос, хотя он не может понять, как это сделать.JQuery и XML - Как добавить значение узлов

Я анализирую XML с помощью JQuery Ajax. Он содержит даты и цены

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 

Однако подмигнули просто конкатенации значения и не добавлять их.

//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's append вставляет содержимое в конец каждого элемента, соответствующего селектору. Это означает, что когда вы добавляете «66», это будет добавлено к элементу. Вы должны отслеживать в общей сложности, как описана Avitus, то вы, вероятно, хотите использовать text функции JQuery, чтобы установить содержание 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);

Большое спасибо, этот сайт АБСОЛЮТНО РОКИ !!!

Смежные вопросы