在html属性中存储非文字js对象
Storing non-literal js object in an html attribute
我正在构建一个大的js库,我需要在html属性中存储一个非文字js对象的实例。因为我不能在这里写整个js文件,这是一个类似的代码:
<div id="abc"></div>
<script>
function abc(){this.foo = Math.random(); ... } //The js object
document.getElementById("abc").setAttribute("data-abc",new abc()); //Store the instance
console.log(document.getElementById("abc").getAttribute("data-abc").foo); //Somehow I get undefined
</script>
我成功地做到了使用JQuery。数据函数,但我不能在这里使用jquery .我如何存储实例?谢谢。
属性只存储字符串,所以您可以通过使用JSON.stringify
和JSON.parse
来实现这一点
function abc(){this.foo = Math.random();}
document.getElementById("abc").setAttribute("data-abc",JSON.stringify(new abc()));
console.log(JSON.parse(document.getElementById("abc").getAttribute("data-abc")).foo);
但是你也可以这样做(除非你真的需要能够将所有内容转换回HTML)
document.getElementById("abc").abc = new abc();
console.log(document.getElementById("abc").abc.foo);
相关文章:
- JS对象文字中的方法和子方法
- 如何在JS中的对象文字中传递字符串
- 从C#中获取JS中对象文字的属性
- Javascript解析序列化的Groovy映射到JS文字对象
- 未终止的正则表达式文字 js 错误
- 拉斐尔.js文字值动画
- Vue.js 和 vue-i18n,从 $ajax 到 Object 文字的 json
- JS对象文字,此上下文更改
- 如何在 JS 中编写数组文字表示法
- 创建 JS 对象:使用文字表示法或设置变量
- JS未终止的字符串文字文档写入
- js使用对象文字替换var
- 将字符串中的方括号文字与JS正则表达式匹配时出错
- 为什么拥有`<脚本>`在字符串文字中导致JS语法错误
- 对象文字之外的JS冒号语法
- 带字符串拆分的JS Lint数组文字符号
- D3.js:Placcin'圆环图圆弧上的文字
- Angular.js:如何访问嵌套的对象文字
- 在html属性中存储非文字js对象
- 无法弄清楚如何设置对象文字JS组织