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

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

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

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

jQuery

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

537閲覧

javascript、jqueryにて配列を作り、その中のクリックしたものを取得しクラスの付与をしたいです。

ShojiroAbe

総合スコア31

JavaScript

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

jQuery

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/08/25 17:34

HTML

1<div> 2 <img class="none_img" src="images/a.png" <!--これにclass="none"を与えたい-->> 3 <img src="images/a_2.png" <!--上のimgにnone"を与えた後重なってるこれが見える-->> 4 </div> 5          <div> 6 <img class="none_img" src="images/b.png" <!--これにclass="none"を与えたい-->> 7 <img src="images/b_2.png" <!--上のimgにnone"を与えた後重なってるこれが見える-->> 8 </div> 9          <div> 10 <img class="none_img" src="images/c.png" <!--これにclass="none"を与えたい-->> 11 <img src="images/c_2.png" <!--上のimgにnone"を与えた後重なってるこれが見える-->> 12 </div> 13

javascript

1$(function(){ 2 3var none = $("img_none"); 4 5 for(var i = 0; i < img_none.length; i++){ 6 img_none[i].addEventListener("click",none); 7 } 8 9 function none(){ 10 var click_none = Array.prototype.slice.call(none); 11 var index_none = click_none.indexOf(this); 12    ↓ここからの記述がわからないです・・・ 13 14 } 15 16 });

none_imgを配列化しクリックしたもの(this)にたいしclass="none"を与えてnoneにしたい流れです
配列とこういったクリックイベントを併用するのが今自分の最難関で大変困ってます
アドバイスをいただきたいです
よろしくお願いします

img_none[i].addEventListener("click",none);が
Uncaught ReferenceError: icon_none is not definedというエラーが出ていて解決策もわからない状態です。
スペルミスはないと思うのですが...

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

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

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

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

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

guest

回答2

0

ベストアンサー

プログラムは書いた通りにしか動かないので、当然、書いた通りに動いています。

  • $("img_none")というセレクタの指定の仕方だと「img_noneというタグ」を指定しています。セレクタの基本をおさえてください。

セレクタの指定が違えばそれも含めて「スペルミス」と言えます。

  • img_noneという変数はどこにも定義されていません。定義されていない変数を利用するのもある意味「スペルミス」と言えます。

定義したものをコピペすれば避けられる話です。

  •     ↓ここからの記述がわからないです・・・ ←実際にこのままコード内に書いてあるなら動かないのは当然ですが、せめてコメントアウトしてください。
  • ご自身はこのコードをどこまで把握しているのでしょうか。
  • jQueryでクラスを指定するなら配列回してaddEventするのではなくjQueryで$('セレクタ').on('イベント',function(){/*処理*/})で良いのでは?

混ざっていると実装のブレが出てよろしくありません。

  • つまり「クラスを付与する」もjQueryの記法でやるべきです

投稿2020/08/25 23:47

編集2020/08/26 00:01
m.ts10806

総合スコア80850

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

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

ShojiroAbe

2020/08/26 07:58

参考にさせていただきました! 無事やりたいことができましたありがとうございます!
guest

0

Uncaught ReferenceError: icon_none is not definedというエラーが出ていて解決策もわからない状態です。

スペルミスはないと思うのですが...

スペルミスでないとしたら、icon_noneというのがどこで定義されているのか教えて下さい。
あなたの貼っているコード上に見当たりません。

エスパー回答をするなら

var none = $("img_none");

for(var i = 0; i < img_none.length; i++){
img_none[i].addEventListener("click",none);
}

この一行目のnoneという変数を意図しているのかもしれませんが、これを3,4行目でimg_noneという名前で参照しようとして間違ってるんじゃないですかね。

この解釈があったら三重でスペルミスですけど。

投稿2020/08/25 17:43

gentaro

総合スコア8949

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

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

gentaro

2020/08/25 17:52

質問文の文中に > none_imgを配列化しクリックしたもの(this)にたいしclass="none"を与えてnoneにしたい流れです とあり、HTMLのクラス名はこの「none_img」っぽいので、四重でミスしてる気がしてきた。 さすがにここまでくると、何を確認して「スペルミスはない」と思ったのか疑問で仕方ないけど…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問