すいません質問があります。
マウスオーバー元の要素をConsole logで表示させたいです。
例えば、下記のようなClassがあるとします。
<div class="test">a</div>
<div class="test">b</div>
<div class="test">c</div>
<div class="test">d</div>
<div class="test">e</div>
もし、bの要素でマウスオーバーした場合、console.logにて b と出力させたいです。
var x = document.getElementsByClassName('test');
var y = function(){
for(i=0; i<x.length; i++){
console.log(test[i]);
}
}
x.onmouseover = y
こちらを実行した場合、a~eのどれかをマウスオーバーした時点で
a
b
c
d
e
と表示されます。
しかし、私が望む結果は、
aをマウスオーバーしたら a, bをマウスオーバーしたらb を表示させることです。
お手数をおかけしますがよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんばんは
テスト環境がないので確認してはいませんが・・・
div群の上位要素にイベントを設定しておくと、イベント発生時に第一引数にイベントオブジェクトが渡されますので、event.target で実際の発生要素を取得できます。
https://developer.mozilla.org/ja/docs/Web/API/Ev …
あるいは、全部にイベントを設定するなら、this に当該要素がセットされていたと記憶しています。
こちらの場合でも、勿論、イベントオブジェクトから取得することも可能です。
ありがとうございます!
thisを活用して取得する方法でなんとかできました。
今日わざわざスクリプトも作成頂いてほんとにありがとうございます。
大変助かりました。
No.2
- 回答日時:
No1です。
No1の前半の場合、対象DIVが動的に増減するような場合でも対応が可能です。
ご提示の部分だけでは上位要素が不明ですので、documentで捉えることにすればこんな感じでしょうか?
document.addEventListener('mouseover', (e) => {
let t = e.target;
if(t.classList.contains('test')) console.log(t.textContent);
});
後半の場合は、ほぼそのままですね。
getElementsByClassNameだとforEachが使えないようなので、少し変えています。
document.querySelectorAll('.test').forEach((elm) => {
elm.addEventListener('mouseover', function(){
console.log(this.textContent);
});
});
(thisを利用する場合はアロー関数は使えません。その場合はe.targetから参照してください)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- HTML・CSS brにクラスをつけてcssでdisplay:none;としても改行されてしまいます 2 2022/06/22 14:45
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- JavaScript 【Javascript】ボタンクリックで2つのclassに対し、それぞれ別のclassを追加したい 1 2022/07/29 20:52
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptテキストBOX色を元に...
-
テキストエリア内の一部の文字...
-
HTMLタグに複数のクラスを設定...
-
createElementが一瞬で消えてし...
-
MAX関数を使ってからLEFT JOIN...
-
読み込んだQRコードをフォーム...
-
マウスを乗せるとメニュー表示
-
変数名をどのようにつけるのが...
-
removeEventListenerについて
-
jqueryを使って無駄なspanタグ...
-
外部ページからハッシュタグ(...
-
フッターの下に隙間ができてしまう
-
HTMLですCSSです この画像のよ...
-
背景色と連動するスライドショ...
-
スライドショー「Skitter」をカ...
-
1枚の画像をクリックすると複数...
-
web制作(HP作成について教えて...
-
textareaに画像を表示したい
-
スワップイメージのフェード方...
-
アコーディオンメニューが開い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
HTMLタグに複数のクラスを設定...
-
変数名をどのようにつけるのが...
-
401エラードキュメントを401.ht...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
タブで開いてさらにタブ内をア...
-
createElementで作成した要素を...
-
removeEventListenerについて
-
表示・非表示のスクリプトで、...
-
HTMLとJavaScriptで作ったタイ...
-
HTMLとJavaScriptで作ったタイ...
-
getElementByIdの戻り値がnull...
-
指定したパスが現URLに含まれて...
-
[急ぎ] videoタグで埋め込んだm...
-
IFRAMEの表示/非表示を切り替え...
-
iframe内のリンクが飛ばないの...
-
removeAttribute()メソッドで削...
-
背景色を透明化
-
jQueryで同じid属性が複数あっ...
おすすめ情報