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

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

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

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

HTML

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

CSS

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

Q&A

解決済

3回答

631閲覧

jQueryで特定のclassを除外する方法

akintat-2748

総合スコア25

jQuery

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/03/03 21:09

プログラミング初心者です。

現在webサイトを作成中です。

以下のようなコードでサムネイルをクリックするとメイン画像が切り替わるというものを作成しました。

HTML

1<div class="mainImage"> 2 <img id="menuaka0" src="syokigazo1.png"> 3</div> 4 5<div class="thumbnails"> 6 <img class="thumbnails_1" id="menuaka1" src="syokigazo1.png" alt="menu1"> 7 <img class="thumbnails_2" id="menuaka2" src="syokigazo2.png" alt="menu2"> 8 <img class="thumbnails_3" id="menuaka3" src="syokigazo3.png" alt="menu3"> 9 <img class="thumbnails_4" id="menuaka4" src="syokigazo4.png" alt="menu4"> 10 <img class="change_exercise1" src="index3_changeexercise.png"> 11 <img class="change_exercise2" src="index3_changeexercise.png"> 12</div>

jQuery

1$('.thumbnails img').click(function () { 2 var $thisImg = $(this).attr('src'); 3 var $thisAlt = $(this).attr('alt'); 4 $('.mainImage img').attr({src: $thisImg, alt: $thisAlt}); 5 $('.mainImage img').hide(); 6 $('.mainImage img').fadeIn("slow"); 7 });

このコード内でclassのchange_exercise1とchange_exerciseはこのサムネイルの入り変えから除外したいのですが、どのようにすればいいでしょうか?色々ググりながらやってもうまくいきませんでした。

アドバイスのほどよろしくお願い申しげます。

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

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

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

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

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

guest

回答3

0

not()を使ってみてください。

投稿2020/03/03 21:36

m.ts10806

総合スコア80850

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

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

akintat-2748

2020/03/03 22:04

not()までは行きついて var $thisImg = $(this).attr('src'); を var $thisImg = $("div:not(.change_exercise1)").attr('src'); に変更して実行して見たのですがすべての画像が切り替わらなくなってしまいます。 書き方が間違ってるのでしょうか?
m.ts10806

2020/03/03 22:06

>not()までは行きついて 現在の質問内容ではそれは分かりません。 追記願います。 >に変更して実行して見たのですが まず $("div:not(.change_exercise1)") で想定の要素が得られるか見てみては? console.log()で見れるはずです。
akintat-2748

2020/03/04 04:25

ご意見ありがとうございました。無事に思ってた通りにできました! まだまだ、勉強不足ですので解決できるよう頑張ります!
m.ts10806

2020/03/04 04:41

解決されたのは良かったのですけど、先に私が質問に追記依頼してたはずなので、できればそちらを対応いただきたかったです。 質問内容は充実していればいるほど無用なやりとりが減ります。解決も早まります。コピペコードやエスパー待ちはなるべく避けましょう。
guest

0

ベストアンサー

私もClass名を付加してグルーピングしてそれを対象にするほうがシンプルだと思いますが、
HTMLを変更できない事情があるなら、

not()前方一致セレクタ を使って、

css

1$('.thumbnails img:not([class^="change_exercise"])').click(function () { 2 3略・・・ 4 5});

Codepenサンプル


クラス名が thumbnails_ で始まる要素と考えれば、下記でもいいですね。
$('.thumbnails img[class^="thumbnails_"]')

投稿2020/03/04 02:02

編集2020/03/04 04:04
hatena19

総合スコア33729

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

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

akintat-2748

2020/03/04 04:22

not() と 前方一致セレクタを使って実施したら思い通りにいけました。ありがとうございます。 class名をグルーピングする方法でも無事できました。ありがとうございます、勉強になりました!
guest

0

除外するより、対象をclassなどでグルーピングするほうがよくないですか?

投稿2020/03/04 00:58

yambejp

総合スコア114850

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

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

yambejp

2020/03/04 00:59

対象にthumbnailsクラスをつけておいて $('.thumbnails img.thumbnails').on('click',function(){ $('.mainImage img').remove(); $('.mainImage').append($(this).clone(true).hide().fadeIn("slow")); });
akintat-2748

2020/03/04 04:23

ありがとうございます。グルーピングする方法でもできました!勉強になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問