javascript не может получить номер индекса данных-индекс

#javascript #html #jquery #css #web

#javascript #HTML #jquery #css #веб

Вопрос:

Когда я console.log(currentIndex), просто появляется NaN. Что мне делать? Я не могу получить никаких исправлений в отношении индекса данных. Могу ли я даже использовать data-index для этого?

 $(".element").mouseover(()=> {
  var currentIndex = parseInt($(this).data('index'));
  console.log(currentIndex);
});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<i class="element" data-index="0">0</i>
<i class="element" data-index="1">1</i>
<i class="element" data-index="2">2</i>
<i class="element" data-index="3">3</i>
<i class="element" data-index="4">4</i>  

Комментарии:

1. потому что все эти «.element» ПУСТЫ

Ответ №1:

Это не то, что вы ожидаете.

Когда вы используете функцию жирной стрелки () => {} , вы говорите, что «это» не должно переключаться в ваш локальный контекст. Используя классический function стиль, вы устанавливаете this ожидаемый элемент, и он работает.

 $(".element").mouseover(function()  {

  var currentIndex = parseInt($(this).data('index'));
  console.log(currentIndex);

});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<i class="element" data-index="0">0</i>
<i class="element" data-index="1">1</i>
<i class="element" data-index="2">2</i>
<i class="element" data-index="3">3</i>
<i class="element" data-index="4">4</i>  

Ответ №2:

 $(".element").mouseover((e) => {

  var currentIndex = parseInt($(e.target).data('index'));
  console.log(currentIndex);

});