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

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

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

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

HTML

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

Q&A

解決済

1回答

327閲覧

JavaScriptを使って商品画像をカテゴリー毎に自動で表示させたい

uchineko-online

総合スコア1

JavaScript

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

HTML

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

0グッド

2クリップ

投稿2022/07/30 12:39

編集2022/07/30 12:46

相談内容

カテゴリー毎に商品が自動で表示され、「もっと見る」をクリックすると該当のカテゴリーページにジャンプさせるためのコードを書いています。

「もっと見る」をクリックすると該当のページにジャンプさせる事はできたのですが、カテゴリー毎の商品を表示させるのがうまくいかずに困っています。

現在の状態では、タイトルの表示やリンクは問題なくできているのですが、商品画像が2つのカテゴリーが一緒になった状態で表示されてしまいます。
JavaScriptの部分が問題なのではないかと思い、数値などを変更してみたのですが解決できていない状態です。

HTML/CSSについては問題ないのですが、JavaScript初心者です。
初歩的な質問で申し訳ないのですが、ご享受いただけますでしょうか?

イメージ説明

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • それぞれのカテゴリーアイテムを表示したい。
  • カテゴリー1の商品とカテゴリー2の商品を別々に表示させたい。

該当のソースコード

<div class="categoryItemArea innerContent"> <div class="jost sectionTitle scrollFade">人気アイテムランキング</div> <div class="itemList scrollFade mainContent"></div> <div class="moreItems jost scrollFade"> <a href="https://cat-only.uchineko.shop/categories/4450934">もっと見る</a> </div> </div> <script> $(function(){ $.ajax({ url: 'https://cat-only.uchineko.shop/categories/4450934', type: 'GET', dataType: 'html', }).done(function(data) { var items = $(data).find('.item'); for (var i = 0; i < items.length; i++) { if (i <= 7) { $('.itemList').append(items[i]); } } if (items.length <= 8) { $(".category1ItemArea .moreItems").css("display", "none") } }) }) </script> <div class="categoryItemArea innerContent"> <div class="jost sectionTitle scrollFade">春☆夏アイテム特集</div> <div class="itemList scrollFade mainContent"></div> <div class="moreItems jost scrollFade"> <a href="https://cat-only.uchineko.shop/categories/4255225">もっと見る</a> </div> </div> <script> $(function(){ $.ajax({ url: 'https://cat-only.uchineko.shop/categories/4255225', type: 'GET', dataType: 'html', }).done(function(data) { var items = $(data).find('.item'); for (var i = 0; i < items.length; i++) { if (i <= 7) { $('.itemList').append(items[i]); } } if (items.length <= 8) { $(".category2ItemArea .moreItems").css("display", "none") } }) }) </script>

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

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

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

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

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

guest

回答1

0

ベストアンサー

そうなる理由はitemListクラスの要素に対してappendをしており、
itemListクラスの要素は(提示のHTMLでは)2つあるので2つともに同じ内容をappendしているからです。
itemListクラスがある要素にそれぞれ異なるidを付け、そのidに対してappendしてください。

投稿2022/07/30 19:27

RiaFeed

総合スコア2701

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

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

uchineko-online

2022/07/30 23:59 編集

早速の回答をありがとうございます! アドバイスいただいた通りに ' mainContent ' にそれぞれ異なるidを付けました。 それだけでは解決しなかったので、さらに ' itemList ' にも1・2と番号を付けたところ解決しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問