gpt4 book ai didi

javascript - 在没有 jQuery 的情况下将对象存储在数据属性中

转载 作者:行者123 更新时间:2023-11-30 14:00:13 24 4
gpt4 key购买 nike

我的问题基本上和this question一模一样.我只是想知道,如果没有 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>

最佳答案

在将数据存储到属性之前使用 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 对象、数组或简单值,具体取决于您的情况。

关于javascript - 在没有 jQuery 的情况下将对象存储在数据属性中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56433010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com