質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.97%

要素にある値の合計金額の出し方

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,335
退会済みユーザー

退会済みユーザー

こんばんは、each文で回したセッションストレージのデータを
独自データ型で要素を特定し(無理なようでしたらクラスを当てようと考えています)、this.price*this.quantity の小計値を
すべて合計して購入金額を算出したいですが、方法が1h考えても思いつきません。
なにか良い解決策あればよろしくお願いいたします。

HTMLについては最小限書くにとどめ、ほとんどjavascriptで動的に書き換えています。

         $(document).ready(function() {
    var user = JSON.parse(sessionStorage.getItem("user"));
    var list = JSON.parse(sessionStorage.getItem("cart"));
    $(function(){
        $('#rewrite').html("");
        //画面表示
        $('<div class = "user">' +
            '<h1>発送先情報</h1>' +
            '<p>&emsp;&emsp;&emsp;&emsp;&emsp;氏名:' + user.user_name + '</p>' +
            '<p>&emsp;&emsp;&emsp;フリガナ:' + user.user_name_kana + '</p>' +
            '<p>&emsp;&emsp;&emsp;郵便番号:' + user.user_zip_code + '</p>' +
            '<p>&emsp;&emsp;&emsp;&emsp;&emsp;住所:' + user.user_address + '</p>' +
            '<p>メールアドレス:' + user.user_mail + '</p>' +
            '<p>&emsp;&emsp;&emsp;電話番号:' + user.user_phone_num + '</p>' +
          '</div>' +
          '<div>' +
         '<div class = "cart_total">カート内合計金額:&yen;' +  + '</div>' +
         '<a href="../html/completion.html" id=completion class="btn btn-default pull-right " role="button">購入を確定する</a>' +
     '</div>').appendTo('#rewrite')
          $.each(list, function(i, val){
             $('<div class="col-md-12 purchace_products">' +
          '<div class = "detail">' +
            '<div class = "products">' +
              '<p class = "products_name">' + this.title + '</p>' +
              '<p class = "maker_name">' + this.manufacture + '</p>' +
            '</div>' +
            '<div class = "subtotal">' +
               '<p>価格:&yen;' + this.price + '</p>' +
               '<p>個数:' + this.quantity + '</p>' +
               '<p data-subtotal=payment>小計:&yen;' + this.price*this.quantity + '</p>'  +
            '</div>' +
          '</div>' +
            '<img src=../' + this.img + ' alt='+ this.title +'>' +
        '</div>').appendTo('#rewrite')
      });
    });

});
//ループ処理でこの要素がX回出るときの合計金額の出し方
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2017/05/30 18:07

    書かれている状況が再現するコード(HTML/CSS/JavaScriptなど)を提示されたほうが回答を得やすいと思います。

    キャンセル

回答 1

checkベストアンサー

+1

グローバル変数を宣言し、ループ内でその変数にthis.price*this.quantityを加算していけばよいのではないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/30 19:00

    var payment;

    $.each(list, function(i, val){
    var total = this.price*this.quantity
    '<p>小計:&yen;' + total + '</p>' +
    '</div>').appendTo('#rewrite')
    payment = total
    このような形でしょうか??
    少し試してみます

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.97%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる