index()やeq()を使うというのはあってますが、
jQueryなら、ループする必要はないです。
js
1$(function() {
2 let jpdiv = $('.japan_div div');
3 $('.japan_list li').hover(function() {
4 jpdiv.eq($(this).index()).css('background', '#F6827B');
5 }, function() {
6 jpdiv.eq($(this).index()).css('background', '');
7 });
8});
ネイティブのJavaScriptで書くなら、
js
1const jpli = document.querySelectorAll('.japan_list li');
2const jpdi = document.querySelectorAll('.japan_div div');
3
4jpli.forEach(function(el, i) {
5 el.addEventListener('mouseover', () => {
6 jpdi[i].style.backgroundColor = '#F6827B'
7 });
8 el.addEventListener('mouseleave', () => {
9 jpdi[i].style.backgroundColor = ''
10 });
11})
コメントの地方で分割した場合のコード例
html
1<div class="japan_list">
2 <ul class="tohoku">
3 <li>北海道</li>
4 <li>岩手</li>
5 <li>宮城</li>
6 <li>青森</li>
7 <li>福島</li>
8 </ul>
9 <ul class="kanto">
10 <li>東京</li>
11 <li>千葉</li>
12 <li>神奈川</li>
13 </ul>
14 <ul class="kyusyu">
15 <li>福岡</li>
16 <li>長崎</li>
17 <li>沖縄</li>
18 </ul>
19</div>
20
21<div class="japan_div">
22 <div class="tohoku">
23 <div>北海道</div>
24 <div>岩手</div>
25 <div>宮城</div>
26 <div>青森</div>
27 <div>福島</div>
28 </div>
29 <div class="kanto">
30 <div>東京</div>
31 <div>千葉</div>
32 <div>神奈川</div>
33 </div>
34 <div class="kyusyu">
35 <div>福岡</div>
36 <div>長崎</div>
37 <div>沖縄</div>
38 </div>
39</div>
jQueryの場合
js
1$(function() {
2 let jpli = $('.japan_list > ul > li');
3 let jpdiv = $('.japan_div > div > div');
4 jpli.hover(function() {
5 jpdiv.eq(jpli.index(this)).css('background', '#F6827B');
6 }, function() {
7 jpdiv.eq(jpli.index(this)).css('background', '');
8 });
9});
$(this).index() → 自身(this)が親要素の中で何番目か
要素リスト.index(this) → 自身(this)が要素リストの中で何番目か
ネイティブのJavaScript場合
js
1const jpli = document.querySelectorAll('.japan_list > ul > li');
2const jpdi = document.querySelectorAll('.japan_div > div > div');
3jpli.forEach(function(el, i) {
4 el.addEventListener('mouseover', () => {
5 jpdi[i].style.backgroundColor = '#F6827B'
6 });
7 el.addEventListener('mouseleave', () => {
8 jpdi[i].style.backgroundColor = ''
9 });
10})