#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);
});