Jquery и XML - Как добавить значение узлов - PullRequest
1 голос
/ 30 марта 2010

Это может быть простой вопрос, хотя не могу понять, как это сделать.

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

XML выглядит примерно так:

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

Я просто хочу выяснить, как рассчитать итоговую цену за сегодня и завтра. Думал, что с помощью Javascript Number он просто вернет общее значение узлов.

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

}
//output is: 6699 

Однако, это просто объединение значений и не добавление их.

//output is: 6699 

Я очень ценю вашу помощь !!

Спасибо

Ответы [ 4 ]

1 голос
/ 30 марта 2010

если вы просто используете переменную javascript в середине, вы получите желаемый результат.

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

    }
  $("#TOTALPRICE"). append(myTotal);
0 голосов
/ 30 марта 2010

Понял, ребята !!! Я просто определяю Вар внутри «каждого». Это переписать значение переменной в каждом цикле:

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

}

$ ( "# TOTALPRICE"). добавление (myTotal);

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

0 голосов
/ 30 марта 2010

jQuery's append будет вставлять содержимое в конец каждого элемента, соответствующего селектору. Это означает, что когда вы добавляете «66», это будет добавлено к элементу. Вам нужно отследить общее количество, как описывает Avitus, тогда вы, вероятно, захотите использовать функцию text jQuery для установить содержимое TOTALPRICE, например:

$("#TOTALPRICE").text(myTotal); 
0 голосов
/ 30 марта 2010

Приложение не делает сложения, оно просто добавляет текст. Если #TOTALPRICE содержит только сумму, вы можете сделать следующее:

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

Если #TOTALPRICE нужен контент, добавленный в конец, потому что он содержит другой контент, то решение, опубликованное Avitus, должно работать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...