我只是无法用头包住这个。我试图给某些元素添加一个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元素VS 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元素,'。数据()'是一个jQuery˚F结。解决方案:'$($(obj)[0])。data('diff')' –