2016-09-05 13 views
0

4つの異なる値の合計を計算しようとしていますが、それらはすべてdomのデータタグを使用して計算されますが、4つの合計値を取得する方法はわかりません組み合わされて、ここに私の機能があります。4つの異なる値の合計合計Js

function calculateUserPricing(initialValues: boolean) { 
    var displayElements = ["jsSuperUser", "jsUser", "jsResourceUser", "jsRessource"]; 
    for (var i in displayElements) { 
     var element = $("div." + displayElements[i]); 
     var quantity = parseFloat(element.data("price")); 
     var users; 
     var total; 
     if (initialValues) 
      users = parseInt(element.data("users")); 
     else 
      element.find(".jsDisplayPrice").text(currencySymbol + " " + $.formatNumber(quantity * users, lineCurrencyFormat)); 
    }  
     for (var i in displayElements) { 
      total += $(displayElements[i]); 
      element.find(".jsDisplayTotal").text(currencySymbol + " " + $.formatNumber(total, lineCurrencyFormat));   
    } 
} 

最後のビットが値をフェッチで私の試みである、しかし無駄に...

はここでhtmlのだ、独自の合計値を示し、各要素は次のようになり、これらのボックスの4があります、

 <div class="container jsRessource" int:title="Ressource" data-price="{../@resource-sys}" 
      data-users="{@resources}"> 
      <div class="box boxSmTxt"> 
       <xsl:text><int:text>Ressource</int:text></xsl:text> 
      </div> 
      <div class="boxLgTxt"> 
       <xsl:value-of select="@resources" /> 
      </div> 
      <span class="prMnd"> 
       <xsl:value-of select="../@resource"></xsl:value-of> 
       <xsl:text> <int:text>/ måned</int:text></xsl:text> 
      </span> 
      <div class="priceBox"> 
       <span class="price"> 
        <span class="prMnd"> 
         <span class="jsDisplayPrice" id="resourcePrice"> 
         </span> 
         <xsl:text> <int:text>i alt</int:text></xsl:text> 
         <br/>      
         <xsl:text><int:text>Totalsum:</int:text> </xsl:text> 
         <span class="jsDisplayTotal"></span> 
        </span> 
       </span> 
      </div> 
     </div> 

EDIT:それは四つの値(価格)が保存されていることは注目に値しますし、私はそれは、個々の箱ローカル合計を表示する「jsDisplayTotal」として分類一つだ、彼らはすべて、このように見える彼らのgrandsumが必要イックでhその ".jsDisplayPrice" divにはその特定の価格カテゴリの合計が表示されますが、これらの4つの価格は合計して総計に加算する必要があります。

EDIT2:が何かをしようとしましたが、それは動作しません、ただ次のコード例、任意のフィードバックをいただければ幸い、0を出力します:

var totalElement = $('.jsDisplayTotal'); 
    function calculateTotal() { 
     var total = 0; 
     $('.jsDisplayPrice').each(function() { 
      total += parseInt($(this).val()); 
     }); 
     totalElement.text(currencySymbol + " " + $.formatNumber(total, lineCurrencyFormat)); 
    } 
    calculateTotal(); 

、それがどのように動作するかの構造サンプル: Structural sample

これは私が最初の大きな数は、ユーザーの量であるgrandsum

のための合計を結合しようとしていますそのうち4つのユーザーカテゴリの1であり、数字の下の数字「19」は静的な数字です。このカテゴリの各ユーザはどれだけ費用がかかりますか?次の行は価格*数量を持つこの特定のカテゴリの現在の合計金額です。これは最後の行のjsDisplayPrice .divです。この特定のカテゴリの合計、および3つの組み合わせ、すべての4つのユーザーカテゴリのgrandsum。

読んでいただきありがとうございます。

+0

この4つの価格で構造のサンプルを提供できますか? – trincot

+0

HTML/XML構造に4つの価格を入力できますか? – trincot

+0

下の図のHTML xslマークアップの中央部分を編集しました。そこに4つのボックスがあり、それぞれに独自のjsDisplayPrice(合計)が表示されていますが、箱、意味がある? – Madvillain

答えて

0

existiting calculateUserPricing()機能それほどのような

function calculateUserPricing(initialValues: boolean) { 
    var displayElements = ["jsSuperUser", "jsUser", "jsResourceUser", "jsRessource"]; 
    var total = 0; 
    for (var i in displayElements) { 
     var element = $("div." + displayElements[i]); 
     var quantity = parseFloat(element.data("price")); 
     var users; 
     if (initialValues) 
      users = parseInt(element.data("users")); 
     else 
      users = $(".entries tr.jsSuperUsers").length; 
     var subtotal = quantity * users; 
     total = total + subtotal; 
     element.find(".jsDisplayPrice").text(currencySymbol + " " + $.formatNumber(subtotal, lineCurrencyFormat)); 
    } 
    element.find(".jsDisplayTotal").text(currencySymbol + " " + $.formatNumber(total, lineCurrencyFormat)); 
} 

それを組み込むことが容易にかつ簡単でしたcalculateUserPricing関数の値がすでにフォーマットされているため、既存の関数では有効な数値として認識されませんでした

1

試してみてください。私は変更していた問題を解決するために管理

var total = 0; 
for (var i in displayElements) { 
    var element = $("div." + displayElements[i]); 
    var quantity = parseFloat(element.data("price")); 
    var users; 
    total += quantity; 
} 
element.find(".jsDisplayTotal").text(currencySymbol + " " + $.formatNumber(total, lineCurrencyFormat)); 
+0

こんにちはjcubicは、すでに知っていて印刷する価格を返しますが、4つの値のカテゴリに含まれるユーザー数(数量)を掛け合わせて、4つの値の合計最大合計、jsDisplayPrice = values '合計、そこに4つ、jsDisplayTotal =総計:-) – Madvillain

関連する問題