Я просто не могу обернуть голову вокруг этого. Я попытался добавить атрибут data-diff к некоторым элементам. Кажется, работает, но в атрибуте html не появляется такой атрибут. Ничего особенного я думал, открыл инструменты для разработчиков и мой след мысли пошли как этот:Настройка атрибута пользовательских данных с ошибкой jQuery
Позволяет установить этот атрибут снова:
console: $(obj).data('diff','10');
output: [div.cont]
Хорошо, давайте проверим атрибут затем:
console: $(obj).data('diff')
output: "10"
Отлично, но все же он не отображается в HTML, давайте проверим это:
console: $(obj)[0]
output:
<div class="cont" data-month="8" data-round="1">
(Tom) 8
<div class="secCol">AUG</div>
</div>
Хм, действительно нет данных различий, может быть, если я пытаюсь это:
console: $(obj)[0].data('diff','10')
output: Uncaught TypeError: $(...)[0].data is not a function(…)
Я предполагаю, что это что-то делать с элементами DOM против объектов JQuery (уже прочитал this), но я не знаю, что еще попробовать. Мой код заключается в следующем:
$('.cont[data-round="'+round+'"]').each(function(i, obj) {
var month = $(obj).data('month');
var diff = Math.abs(myMonth-month);
$(obj).data('diff', diff);//Here is the problem
});
'$ (OBJ) [0]' дает HTML элемент, '.data()' является JQuery е соборование. Обход проблемы: '$ ($ (obj) [0]). Data ('diff')' –