teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード追記

2021/03/18 05:46

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -28,4 +28,78 @@
28
28
  jpdi[i].style.backgroundColor = ''
29
29
  });
30
30
  })
31
+ ```
32
+
33
+ ---
34
+ コメントの地方で分割した場合のコード例
35
+
36
+ ```html
37
+ <div class="japan_list">
38
+ <ul class="tohoku">
39
+ <li>北海道</li>
40
+ <li>岩手</li>
41
+ <li>宮城</li>
42
+ <li>青森</li>
43
+ <li>福島</li>
44
+ </ul>
45
+ <ul class="kanto">
46
+ <li>東京</li>
47
+ <li>千葉</li>
48
+ <li>神奈川</li>
49
+ </ul>
50
+ <ul class="kyusyu">
51
+ <li>福岡</li>
52
+ <li>長崎</li>
53
+ <li>沖縄</li>
54
+ </ul>
55
+ </div>
56
+
57
+ <div class="japan_div">
58
+ <div class="tohoku">
59
+ <div>北海道</div>
60
+ <div>岩手</div>
61
+ <div>宮城</div>
62
+ <div>青森</div>
63
+ <div>福島</div>
64
+ </div>
65
+ <div class="kanto">
66
+ <div>東京</div>
67
+ <div>千葉</div>
68
+ <div>神奈川</div>
69
+ </div>
70
+ <div class="kyusyu">
71
+ <div>福岡</div>
72
+ <div>長崎</div>
73
+ <div>沖縄</div>
74
+ </div>
75
+ </div>
76
+ ```
77
+
78
+ **jQueryの場合**
79
+ ```js
80
+ $(function() {
81
+ let jpli = $('.japan_list > ul > li');
82
+ let jpdiv = $('.japan_div > div > div');
83
+ jpli.hover(function() {
84
+ jpdiv.eq(jpli.index(this)).css('background', '#F6827B');
85
+ }, function() {
86
+ jpdiv.eq(jpli.index(this)).css('background', '');
87
+ });
88
+ });
89
+ ```
90
+ $(this).index() → 自身(this)が親要素の中で何番目か
91
+ 要素リスト.index(this) → 自身(this)が要素リストの中で何番目か
92
+
93
+ **ネイティブのJavaScript場合**
94
+ ```js
95
+ const jpli = document.querySelectorAll('.japan_list > ul > li');
96
+ const jpdi = document.querySelectorAll('.japan_div > div > div');
97
+ jpli.forEach(function(el, i) {
98
+ el.addEventListener('mouseover', () => {
99
+ jpdi[i].style.backgroundColor = '#F6827B'
100
+ });
101
+ el.addEventListener('mouseleave', () => {
102
+ jpdi[i].style.backgroundColor = ''
103
+ });
104
+ })
31
105
  ```

1

コード追加

2021/03/18 05:46

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -11,4 +11,21 @@
11
11
  jpdiv.eq($(this).index()).css('background', '');
12
12
  });
13
13
  });
14
+ ```
15
+ ---
16
+
17
+ ネイティブのJavaScriptで書くなら、
18
+
19
+ ```js
20
+ const jpli = document.querySelectorAll('.japan_list li');
21
+ const jpdi = document.querySelectorAll('.japan_div div');
22
+
23
+ jpli.forEach(function(el, i) {
24
+ el.addEventListener('mouseover', () => {
25
+ jpdi[i].style.backgroundColor = '#F6827B'
26
+ });
27
+ el.addEventListener('mouseleave', () => {
28
+ jpdi[i].style.backgroundColor = ''
29
+ });
30
+ })
14
31
  ```