過去の質問と同じなのですが、id指定ではなくclass指定にしたいのです。
http://oshiete.goo.ne.jp/qa/7478978.html
<span class="suuji">1,234,567</span>
<span class="suuji">8,888</span>
<span class="suuji">999,999</span>
<span class="total">0</span>
idをclassに変更した場合の方法を教えてください。
よろしくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
<script>
window.addEventListener('DOMContentLoaded', event=>{
function A(a){ return Array.prototype.slice.apply(a) }
var spans = A(document.querySelectorAll('span.suuji'));
var total = spans.map(s=>s.textContent).map(s=>s.replace(/\s|,/g,'')).map(s=>parseInt(s,10)).filter(n=>!isNaN(n)).reduce((p,v)=>p+v).toString().replace(/(\d)(?=(\d{3})+$)/g,'$1,');
A(document.querySelectorAll('span.total')).forEach(s=>s.textContent=total);
}, false);
</script>
ありがとうございます!!!!
丁寧に教えて頂き恐縮です
コードをコピーペーストして、試してみましたのですが、上手く反応しませんでした。
dreamweverによると、window.addEventListener('DOMContentLoaded', event=>{ にシンタックスエラーがあります。と表示されます。
お手数ですが、どの部分がエラーなのか教えて頂けると嬉しいです。
厚かましくもよろしくお願い申し上げます。
No.1
- 回答日時:
<script>
window.onload=function(){
var n=document.getElementsByTagName("span");
var v=0;
for(var i=0;i<n.length;i++){
if(n[i].class.match(/^suuji[0-9]+$/)){
v +=parseInt(n[i].innerHTML.replace(/,/g,''));
}
}
var num=v.toString();
while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
document.getElementById("total").innerHTML=num;
}
</script>
<span class="suuji1">1,234,567</span>
<span class="suuji2">8,888</span>
<span class="suuji3">999,999</span>
<span class="total">0</span>
早速の回答ありがとうございます!!!
試してみたのですが、うまく動きませんでした。
私も、if(n[i].class.match ここを変えたり色々試しているのですが、classにしたら動かないのです。。。
頂きました回答の
<span class="total">0</span>を<span id="total">0</span>にしてもダメでした。
ちなみに、
<span class="suuji1">1,234,567</span>
<span class="suuji2">8,888</span>
<span class="suuji3">999,999</span>
このclassは全て
<span class="suuji">で統一したいです。
お手数ですが、動かない原因が分かりましたら是非教えてください。
よろしくお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ActiveXobjectが作成できない
-
モーダルダイアログウィンドウ...
-
【Tabキー】特定の範囲内だけで...
-
javascript 特定のタグのidの存...
-
javascript の 命令文の記述で...
-
javascript画面を自動で切り替...
-
重複しないくじの作り方がわか...
-
文字を点滅させるスクリプト ...
-
xml+xslでの変換内容をtextareaへ
-
JavaScriptでオブジェクトを取...
-
食材の期限を管理するためにGAS...
-
javascriptで入力フォームに日...
-
idを使わずにonclickで自身の要...
-
同じIDで定義した要素の配列を...
-
ASP.NETのコントロールの値をJa...
-
JavaScriptとHTMLの課題です
-
jspからjavascriptの変数引継ぎ
-
この配列は何?
-
javascriptで行を抽出したいです。
-
ラジオボタンでreadonlyの切替え
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
javascript 特定のタグのidの存...
-
onchangeイベントを使ってspan...
-
任意の座標をクリックさせるには
-
innerHTML実行後のイベント
-
問題はbind の付いたリスナーを...
-
Click回数を数え、規定された回...
-
【Tabキー】特定の範囲内だけで...
-
javascriptでCSVを呼出しvlookup
-
画像の一部を表示
-
HTML:Tableタグに対し、JavaScr...
-
画像上のクリックした場所が分...
-
javascriptであるボタンを押す...
-
RadioButtonListの表示制御
-
javascript の 命令文の記述で...
-
onclickとonkeypressの重複
-
javascriptを使ったページ内の...
-
javascriptでスロットゲームを...
-
文字を点滅させるスクリプト ...
おすすめ情報
何度も申し訳ございません、補足させて頂きます。
下記のように、文字や空白が入る場合もございます。
<span class="suuji">1,234,567</span>
<span class="suuji">8,888</span>
<span class="suuji"></span>
<span class="suuji">該当なし</span>
<span class="suuji">999,999</span>
<span class="total">0</span>
NaNなどのエラーが出ないように、空白や文字を無視して
数字が入っている箇所の合計を出したいです。
どうぞ宜しくお願い申し上げます。
すみません、私の記述ミスでした!!!
教えて頂きました方法で、希望通りの結果が得られました!
本当にありがとうございました!