<a id="link-one" href="#" data-status="true">Anchor</a>
下面的代碼將 「真」 在控制檯上:
console.log($('#link-one').data('status'));
而且,當我改變這樣的價值:
$('#link-one').attr('data-status', 'false');
價值的變化,我可以看到通過使用Chrome檢查器檢查元素。是的,它確實在變化。
但是,在分配/更改上述值之後,然後在更改返回初始值後再次訪問它,而不是修改的新值。我需要訪問當前值,即更改後。
console.log($('#link-one').data('status')); // writes "true"
$('#link-one').attr('data-status', 'false');
console.log($('#link-one').data('status')); // writes "true" again
我錯過了什麼嗎?或者這是jQuery的默認行爲(如果是的話,我該如何實現我所需要的)?
數據屬性和數據對象屬性不一樣。僅當第一次解析時,Jquery纔會將數據屬性解析爲數據對象屬性。你應該使用'$('#link-one')。data('status',false);'注意比字符串''false''在JavaScript中被評估爲true,我想你想要一個布爾值 –
'attr '是爲DOM的屬性。 'href','src','class'等。'data'是完全獨立的,並且不相關。 –
你應該使用'data()'作爲getter和setter。 –