みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【jQUery】表示される数字をカンマで区切りたい

予約フォームを作っているのですが、
表示される合計金額をカンマ区切りで表示したいです。
(最高金額は360,000なので、カンマは1回で大丈夫です)

下記ソースですが、
toLocaleStringメソッドを使用するというのを見つけ、
Number($('.s.kingaku').text(n_s*p_s)).toLocaleString();
という風に書きましたが、変化はありませんでした。
別の方法でもいいので、どなたかご教示いただけませんでしょうか。
-----------js----------
$(function(){
$('[name=datename]').on('change',function(){
$(this).closest('label').nextAll('.parent:eq(0),.children:eq(0)').prop('disabled',!$(this).prop('checked'));
}).trigger('change');
$(':checkbox,select').on('change click',function(){
var souryo=0;
var p_s=9000;
var p_a=6000;
var n_s=0;
var n_a=0;
$('.parent:not(:disabled):not(:has(option[value=""]:selected))').each(function(){
if($(this).val()=="S") n_s+=parseInt($(this).next('.children').val());
if($(this).val()=="A") n_a+=parseInt($(this).next('.children').val());
});
$('.s.maisu').text(n_s);
$('.a.maisu').text(n_a);
$('.s.kingaku').text(n_s*p_s);
$('.a.kingaku').text(n_a*p_a);
if(n_s+n_a>=16){
souryo=1200;
}else if(n_s+n_a>=11){
souryo=1000;
}else if(n_s+n_a>=1){
souryo=850;
}
$('.souryo').text(souryo);
$('.all.kingaku').text(n_s*p_s+n_a*p_a+souryo);
}).eq(0).trigger('change');
});
----------html----------
<dd class="required">
<div id="result">
S席:合計<span class="s maisu">0</span>枚 × 9,000円 = <span class="s kingaku">0</span>円<br>
A席:合計<span class="a maisu">0</span>枚 × 6,000円 = <span class="a kingaku">0</span>円<br>
送料:<span class="souryo"></span>円(~10枚:850円,~15枚:1000円,16枚~:1200円)<br>
合計:<span class="all kingaku">0</span>円
</div>
</dd>

投稿日時 - 2018-12-26 15:44:24

QNo.9571588

すぐに回答ほしいです

質問者が選んだベストアンサー

Number($('.s.kingaku').text(n_s*p_s)).toLocaleString();
            ~~~~~~~
ここが、変わらないと!これだと、終わった「後」にやってますよ。

$('.s.kingaku').text((n_s*p_s).toLocaleString()));
と、変換済みがtextに渡ればOKかと。
ただ非常に!読みにくいので、
var kingaku=(n_s*p_s).toLocaleString();
$('.s.kingaku').text(kingaku);
の方が、いいかと。

投稿日時 - 2018-12-26 17:35:20

お礼

逆だったんですね!
ずっとぐるぐるしてました。
ありがとうございます!

投稿日時 - 2018-12-26 18:12:30

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Number.toLocaleString はブラウザによって実装の違いもあるようなので、正規表現を使うのが確実なんじゃないでしょうか。
https://qiita.com/ariyo13/items/ab410a84c74b23099648

投稿日時 - 2018-12-26 16:07:06

お礼

ブラウザの違いがあるのですね。やってみます!
ありがとうございます。

投稿日時 - 2018-12-28 12:33:55

あなたにオススメの質問