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

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

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

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

HTML

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

Q&A

解決済

3回答

3569閲覧

jqueryで、クリックしたら他の属性にclass追加

begginer_class

総合スコア14

jQuery

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

HTML

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

0グッド

0クリップ

投稿2020/06/15 04:55

編集2020/06/15 08:34

###やりたいこと
ある場所をクリックしたら、他の要素にclassを追加したい

###試したこと
以下コードでは効きませんでした。

html

1<div id="sample"> 2 <ul class="nav"> 3 <li class="step1"><p>step1</p></li> //ここにclassを追加したい 4 <li class="step2"><p>step2</p></li> 5 </ul> 6</div> 7 8<div id="question" class="fit"> 9 <p>下記のいずれかをクリック</p> 10 <ul class="flexbox">//liのどれかをクリックで上のclass.stepに".active"を追加したい 11 <li><a class="btn trans1" data-value="りんご" onclick="sample(this)">りんご</a></li> 12 <li><a class="btn trans2" data-value="みかん" onclick="sample(this)">みかん</a></li> 13 <li><a class="btn trans3" data-value="もも" onclick="sample(this)">もも</a></li> 14 </ul> 15</div>

js

1$('#question>ul>li').click(function(){ 2 $('.step1').addClass('active'); 3}) 4 5function sample(elem) { 6 product = $(elem).data('value'); 7}; 8 9$(function () { 10 $(".btn").on("click", function () { 11 $(this).closest("div").css("display", "none"); 12 id = $(this).attr("href"); 13 $(id).addClass("fit").show("slow"); 14 }); 15});

css

1#sample{ 2 margin-top: 90px; 3}

上記コードでは効きませんでした。
jsの$(要素)の部分を色々と修正してみましたが、どれもだめでした。
とてもシンプルなのでこれ以上どこを直せば良いかわからず質問させていただきました。

以上、宜しくお願い致します。

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

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

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

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

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

kei344

2020/06/15 05:03

関数「sample」のコードを提示してください。
kei344

2020/06/15 05:51

そこの挙動しだいなので提示してください、と書いています。
begginer_class

2020/06/15 05:55

cssの記述内容も影響するとは、無知でした。 追記しました。
kei344

2020/06/15 05:57

関数の話をしています。「 onclick="sample(this)"」これの「sample」は関数といって事前に定義されているはずのものです。
begginer_class

2020/06/15 06:04

随分前に書いたものだったのでこの存在を忘れておりました;; 追記しました。
yambejp

2020/06/15 08:13

jQueryを利用するならタグ自体にonclickなどを設定するのは なるべくやめた方がいいいでしょう
begginer_class

2020/06/15 08:35

onclickが問題なのではないかと思ってはいるのですが、js側で受け取るのにaタグにはvalue属性がないからと以前こちらで教えていただいた方法となります。。
guest

回答3

0

jQueryの記述を以下に変更したところできました。

js

1$(function () { 2 $(".flexbox>li>a").on("click", function () { 3 $(".step1").addClass("active"); 4 }); 5}); 6

投稿2020/06/15 08:55

begginer_class

総合スコア14

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

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

0

.activeの css class が定義されていないことが原因で、activeのclassを追加が行われても見た目が変わらないという可能性もある気がします。
その場合は<head>要素の中に<style>.active { background-color:red; }</style>などを追加すると見た目が変わるようになります。

投稿2020/06/15 07:55

ku__ra__ge

総合スコア4524

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

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

begginer_class

2020/06/15 07:57

開発ツールを見ても追加自体されていませんでした。 ※他のJSは動いています
guest

0

ベストアンサー

動くサンプル:https://jsfiddle.net/1m0oqyke/


提示のコードで動くため、下記の3点を確認してください。
0. jQueryが読み込まれている
0. jQueryの読み込みより後に提示のJavaScriptコードが読み込まれている
0. 提示されたHTMLより後に提示のJavaScriptコードが読み込まれているか、$(function(){/* ここ */}); 内にコードを書いている

投稿2020/06/15 06:37

kei344

総合スコア69606

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

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

begginer_class

2020/06/15 08:03

エラーは出ていなく、他のjqueryが動いているのでそのあたりは問題なさそうでした。 ただ、JSに記述漏れがあったので追記をさせていただいております。 (あまり関係はなさそうでしたが・・)
begginer_class

2020/06/15 08:12

小出しにしてしまいすみません。 ただ、やはりこの記述が何か影響を与えているわけではないようですね。
kei344

2020/06/15 08:56

> 3. 提示されたHTMLより後に提示のJavaScriptコードが読み込まれているか、$(function(){/* ここ */}); 内にコードを書いている 書いてるのに・・・。
begginer_class

2020/06/17 03:18

たしかにそうですね。その方法でも元々試していました。 ただ、要素の書き方を変えるなど試行錯誤してやっとできたので、つい嬉しくてその回答をいただいていることがすっかり頭から抜けておりました。 ベストアンサーを変更させていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問