РЕДАКТИРОВАТЬ Переосмысливая то, что я думаю, вы пытаетесь сделать - этот первый отсканированный изменит элемент CSS только для поиска
$('.hole').hover(
function(){
$(this).css({"background":"black"});
},
function(){
$(this).removeAttr('style');
}
);
Где ваш код вызывает проблемы
Эта часть здесь не собирается возвращать значение, потому что вы переносите его в jQuery, а переносимое значение не является селектором
// get the data value of the currently hovered element
var holeKey = $($(this).data('holeKey'));
Чтобы получить значение из данных элемента
// get the data value of the currently hovered element
var holeKey = $(this).data('holeKey');
Чтобы изолировать $ ('.hole') на основе значения данных, вы можете сделать что-то вроде этого:
var testVal=1;
$('.hole[data-hole-key="'+ testVal+'"]').hover(.....
Или другой метод, использующий filter ()
var testVal=1;
$('.hole').filter(function(){
return $(this).data('data-hole-key')==testVal;
}).hover(....