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

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

新規登録して質問してみよう
ただいま回答率
85.49%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

541閲覧

合計値の表示について

flyingHigh

総合スコア41

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2021/03/17 02:00

編集2021/03/17 02:31

前回同様の質問をし、回答を頂き、ソースを調べるなどして理解したのですが
動く形になるまで持っていくことができませんので、再度質問させていただきます。

入力エリアに個数を入れると
「選択されたカードの値段×個数」の合計金額が
瞬時に表示されるようにしたいのですが、
どのようにすればよいでしょうか?

.priceの値段テキストから
値段のみを抜き出し、個数と掛け合わせています。

html

1 2<div class="wrapper"> 3 <div class="content"> 4 <form action=""> 5 <div class="price-info"> 6 <div class="price-txt">合計<span class="red"><span class="price-chg" id="price-chg">0</span></span>(税込) 7 </div> 8 </div> 9  <div><input id="sum_quantity" type="text" value="" name="sum_number" placeholder="0"></div> 10 <div class="select-item"> 11 <ul class="item-list item-calc"> 12 <li> 13 <input type="checkbox" class="select-checkdox" id="select-checkdox-01" name="select-checkdox"> 14 <label for="select-checkdox-01" class="item-info"> 15 <div class="check-img"></div> 16 <div class="ttl">カード1</div> 17 <div class="price">100円</div> 18 </label> 19 </li> 20 <li> 21 <input type="checkbox" class="select-checkdox" id="select-checkdox-02" name="select-checkdox"> 22 <label for="select-checkdox-02" class="item-info"> 23 <div class="check-img"></div> 24 <div class="ttl">カード2</div> 25 <div class="price">180円</div> 26 </label> 27 </li> 28 <li> 29 <input type="checkbox" class="select-checkdox" id="select-checkdox-03" name="select-checkdox" 30 checked> 31 <label for="select-checkdox-03" class="item-info"> 32 <div class="check-img"></div> 33 <div class="ttl">カード3</div> 34 <div class="price">400円</div> 35 </label> 36 </li> 37 <li> 38 <input type="checkbox" class="select-checkdox" id="select-checkdox-04" name="select-checkdox"> 39 <label for="select-checkdox-04" class="item-info"> 40 <div class="check-img"></div> 41 <div class="ttl">カード4</div> 42 <div class="price">1,100円</div> 43 </label> 44 </li> 45 </ul> 46 </div> 47 </form> 48 </div> 49</div> 50

jquery

1 2$(function(){ 3 $('#sum_quantity,.select-checkdox').on('input',function(){ 4 var quantity=isNaN($('#sum_quantity').val())?0:parseInt($('#sum_quantity').val()); 5 var price=$('.select-checkdox:checked').nextAll('.price').map(function(){ 6 return parseInt($(this).text().replace(/[^0-9]/g,'')); 7 }).get().reduce(function(x,y){ 8 return x+y; 9 }); 10 $('#price-chg').text(quantity*price); 11 }); 12}); 13

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2021/03/17 02:16

「個数」とは#sum_quantityのことですか? チェックしてあるものを全て#sum_quantityの数だけ買う、という理解で合っていますか?
Lhankor_Mhy

2021/03/17 02:19

https://teratail.com/questions/325869 マルチポストではありませんか? > teratailでは、マルチポスト※の推奨はしていません。 https://teratail.com/help#posted-otherservice > 質問への回答とは、余程初歩的な問題でない限り、それなりに時間が必要となる行為である。より良い回答をしようと丁寧に調べ上げてから文章に推敲を重ねた上で回答してくれるユーザも少なくない。マルチポストはそんな回答者の親切心を裏切る行為である。 https://dic.nicovideo.jp/a/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88 > マルチポストだと指摘されました。どうすればいいですか? > 質問文を編集して、マルチポストしていることを説明してください。 https://ja.meta.stackoverflow.com/questions/2418/ > また、マルチポストはマナー違反であるという意見については賛否両論である。 https://ja.wikipedia.org/?curid=46419
flyingHigh

2021/03/17 02:37 編集

マルチポストとなった旨を追記いたしました。 失礼しました。 >チェックしてあるものを全て#sum_quantityの数だけ買う、という理解で合っていますか?  仰るとおりです。合っています。
Lhankor_Mhy

2021/03/17 02:50

すみません、コメントがわかりにくかったようです。 teratailで重複質問をした場合、 > また、teratail上で誤って同じ質問を複数投稿してしまった場合は、質問の削除リクエストを送ってください。 https://teratail.com/help#posted-otherservice となっていますので、この質問に削除リクエストを出して、元質問で継続されることをおすすめします。
flyingHigh

2021/03/20 10:55

元質問の回答受付を終了してしまったので こちらで質問させていただきたいです。
guest

回答1

0

ベストアンサー

javascript

1document.addEventListener('input',()=>{ 2 var sum_price=[...document.querySelectorAll('.select-checkdox:checked')].map(x=>x.nextElementSibling.querySelector('.price').textContent.replace(/[^0-9]/g,'')).reduce((x,y)=>Number(x)+Number(y),0); 3 var sum_quantity=document.querySelector('#sum_quantity').value; 4 document.querySelector('#price-chg').textContent=(sum_price*sum_quantity).toLocaleString(); 5});

投稿2021/03/17 03:02

yambejp

総合スコア114736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

flyingHigh

2021/03/20 16:16 編集

ありがとうございます。 勉強になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問