Что значит сообщение в консоли браузера object DOMStringMap.
Если при сохранении dataset в JS показывает данные [object DOMStringMap], то значит не указана инструкция какой именно атрибут из html нужно забрать.
Не верно:
var data = this.dataset;
alert(data);
alert(data);
А так верно (забирает type):
var data = this.dataset.type;
alert(data);
alert(data);