如何設置數據屬性而不在jQuery中添加值?我想這一點:設置無值的屬性
<body data-body>
我想:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
一切似乎來的第二個參數添加爲一個字符串。有沒有可能只設置一個沒有價值的屬性?
如何設置數據屬性而不在jQuery中添加值?我想這一點:設置無值的屬性
<body data-body>
我想:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
一切似乎來的第二個參數添加爲一個字符串。有沒有可能只設置一個沒有價值的屬性?
attr()
函數也是一個setter函數。你可以傳給它一個空字符串。
$('body').attr('data-body','');
一個空字符串將簡單地創建沒有值的屬性。
<body data-body>
參考 - http://api.jquery.com/attr/#attr-attributeName-value
ATTR(的attributeName,value)的
+1,但OP知道它是一個setter。傳遞一個空字符串而不是'null'的事實並不令人感到意外。 – Jon
[Javasctipt有一些奇怪的行爲](http://www.youtube.com/watch?v=kXEgk1Hdze0)。知道這些奇怪的事情發生在哪裏將取消surprize元素:P – Lix
注意:這不適用於jQuery 1.7.2(我知道這不是最新版本),但使用'$(el).prop('data-body ',true)'爲我工作,其中'$(el).attr('data-body','')'最後爲我設置了data-body =「data-body」。 –
也許嘗試:
var body = document.getElementsByTagName('body')[0];
body.setAttribute("data-body","");
只有這個解決方案適用於我'var btn = $(this).get(0); btn.setAttribute(「disabled」,「」);' – gkiko
在解決.attr和.prop之後,就像在這裏所有其他解決方案和評論中提到的那樣,我終於發現返回(或至少 「方式「返回)原生JS,做了詭計,就像上面的評論中所建議的那樣......爲此歡呼! – TheCuBeMan
爲什麼你需要'data-body'與'data-body =「」'? –
至少如果你想使用XHTML,你不應該那樣做,因爲[屬性最小化](http://www.w3.org/TR/xhtml1/#h-4.5)是不允許的。 – Matthias
我不使用XHTML,我使用HTML5 – David