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

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

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

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

jQuery

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

Q&A

解決済

2回答

529閲覧

セール中の商品を判別して処理をしたい【JavaScript初心者】

halpi

総合スコア0

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2020/04/28 03:16

編集2020/04/28 03:20

前提

Javascriptの知識は初心者レベルのWebデザイナー(フロントはOK)です。

カートASPをカスタマイズしながら、一般的なECサイトをつくっています。
商品一覧ページで「セール商品を判別して、それだけ色を変える」
というような、元々のカートの機能にないことをしたいとのことで、
Javascriptを書いて実装したいのですがうまくいかず。

急ぎかつ周りに聞ける人がいなく。。ベテランの方のお知恵を借りたいです。

実現したいこと

各商品の [定価] と [販売価格] の数値を比較して
[定価] > [販売価格] の場合
liタグに nowsale というクラス名を加えたい。
なお、JQuery使える環境(のはず)です。

該当のソースコード

html

1<ul class="item-wrap"> 2 3 <li class="item"> 4 <a href="[商品詳細ページへのリンク]"> 5 <img src="[商品の写真]"> 6 <h3 class="item-name">[商品の名前]</h3> 7 <p class="item-consumerPrice"><span class="cp">[定価]</span>円(税込)</p> 8 <p class="item-taxPrice"><span class="tp">[販売価格]</span>円(税込)</p> 9 </a> 10 </li> 11 12 <li class="item"> 13 <a href="[商品詳細ページへのリンク]"> 14 <img src="[商品の写真]"> 15 <h3 class="item-name">[商品の名前]</h3> 16 <p class="item-consumerPrice"><span class="cp">[定価]</span>円(税込)</p> 17 <p class="item-taxPrice"><span class="tp">[販売価格]</span>円(税込)</p> 18 </a> 19 </li> 20 21 ・・・以下同様にリストが続く 22 23</ul>

試したこと

定価と販売価格をまず変数として定義させ、それらを比較して、
それに該当すればclassを加えれば良いのだから・・・
ということでここまで書きました。

これだとうまくいかなくて、
ループ的なものを使わないといけないのだろうなぁというところまでは予測していますが
知識不足で詰まっています。

javascript

1<script type="text/javascript"> 2 $(function() { 3 var CP = $('.cp').text(); 4 var TP = $('.tp').text(); 5 if(TP>CP){ 6 $('.item').addClass("nowsale"); 7 } 8 }); 9</script>

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

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

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

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

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

guest

回答2

0

これで。

【jQuery.each() | jQuery API Documentation】
https://api.jquery.com/jquery.each/

【jQueryのeach()で複数の要素、配列、オブジェクトをループ処理】
https://www.flatflag.nir87.com/each-1325

投稿2020/04/28 03:32

kei344

総合スコア69606

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

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

halpi

2020/04/28 05:04

お二方ともありがとうございます! 参考にさせていただきます。
kei344

2020/04/28 05:47

To: halpiさん 結局まったく参考にしていないですね。
guest

0

自己解決

こちらのコードで解決いたしました。
ご覧いただいた方、コメントお寄せいただいた方、ありがとうございました。

javascript

1$(function () { 2 var items = $('.item'); 3 4 for (var i = 0; i < items.length; i++) { 5 var teika = items.eq(i).find('.cp').text(); 6 var hanbai = items.eq(i).find('.tp').text(); 7 8 if (teika > hanbai) { 9 items.eq(i).addClass('is-sale'); 10 } 11 } 12}); 13

投稿2020/04/28 05:44

halpi

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問