我只是無法用頭包住這個。我試圖給某些元素添加一個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')' –