亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在沒有 jQuery 的情況下將對象存儲在數據屬性中

在沒有 jQuery 的情況下將對象存儲在數據屬性中

狐的傳說 2021-06-16 10:13:59
我的問題基本上就像這個問題。我只是想知道,是否有辦法在沒有 jQuery 的情況下實現這一點。以下代碼不起作用。我也用數組嘗試過它,但就像存儲為字符串的對象一樣。是我做錯了什么,還是在普通的 javascript 中是不可能的?var div = document.getElementById("testDiv");var obj = {name: "Test1", value: 100};div.setAttribute("data-obj", obj);var arr = [59, 40, 3, 2, 1, 0];div.setAttribute("data-arr", arr);console.log("Object-Value: "+div.dataset.obj+"; Type: "+(typeof div.dataset.obj)+"; Name: "+div.dataset.obj.name);console.log("Array-Value: "+div.dataset.arr+"; Type: "+(typeof div.dataset.arr)+"; Third Value: "+div.dataset.arr[2]);<div id="testDiv">This is a test.</div>
查看完整描述

2 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

JSON.stringify()在將數據存儲在屬性中之前使用。它基本上是將數據序列化為字符串。


var div = document.getElementById("testDiv");

var obj = JSON.stringify({name: "Test1", value: 100});

div.setAttribute("data-obj", obj);


var arrayAsJSON = JSON.stringify([59, 40, 3, 2, 1, 0]);

div.setAttribute("data-arr", arrayAsJSON);

然后JSON.parse()在獲取屬性值之后和呈現它之前使用。這將根據您的情況將其反序列化回 javascript 對象、數組或簡單值。


查看完整回答
反對 回復 2021-06-18
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

您需要使用JSON.stringify(和parse讀?。ο?數組更改為 json(字符串)


var obj = {name: "Test1", value: 100};

var arr = [59, 40, 3, 2, 1, 0];


testDiv.dataset.obj = JSON.stringify(obj);

testDiv.dataset.arr = JSON.stringify(arr);


console.log( JSON.parse(testDiv.dataset.obj).name );

console.log( JSON.parse(testDiv.dataset.arr)[2] );

<div id="testDiv"></div>


查看完整回答
反對 回復 2021-06-18
  • 2 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號