【问题标题】:Save a javascript object in an HTML object [duplicate]将 javascript 对象保存在 HTML 对象中 [重复]
【发布时间】:2016-05-24 16:32:18
【问题描述】:

有没有办法在 HTML 对象中保存 javascript 标签?我想做的是这样的:

<div id="htmlTag">some text</div>
<script type="text/javascript">
    htmlTag.something = {s:"a string",n:1,b:false,a:[3,2,1],f:function(){alert("hello")}}
</script>

【问题讨论】:

  • 为什么?您想在这里实现什么目标?
  • 没有“HTML 对象”这样的东西。
  • @NiettheDarkAbsol 我想保存与 HTML 对象相关的 javascript 信息,但这与它没有直接关系。
  • @DonaldDuck 你说的“但这与它没有直接关系”是什么意思?
  • @guest271314 如果它不存在,则 HTML 对象将工作并且看起来与它存在时完全相同。

标签: javascript html


【解决方案1】:

我认为你唯一的问题是你没有得到节点。

document.getElementById("htmlObject").something = {hi: 1};

【讨论】:

  • 也就是说,除非您正在开发某种 html/js 框架,否则我无法想象一个好的用例。
  • 这在旧版本的 IE 中不起作用,我希望我的 HTML 与它们兼容。
  • 然后使用document.getElementById("htmlObject")
【解决方案2】:

如果你想要实现,你可以使用this plugin 将 JS 对象转换为 JSON 字符串。

var json_data = JSON.stringify(yourObj);

【讨论】:

    【解决方案3】:

    您可以使用javascript函数JSON.stringify()来做到这一点

    Javascript

    <div id="htmlTag">some text</div>
    <script type="text/javascript">
        document.getElementById('htmlTag').something = JSON.stringify({s:"a string",n:1,b:false,a:[3,2,1],f:function(){alert("hello")}});
    </script>
    

    这是一个 JSFiddle:https://jsfiddle.net/LcrLeg8a/1/

    【讨论】:

    • 您实际上不需要字符串化。节点元素的处理方式类似于常规的 js 对象,因此您可以向其添加任意属性。
    猜你喜欢
    • 2020-08-15
    • 1970-01-01
    • 2011-09-05
    • 2016-06-04
    • 1970-01-01
    • 2020-04-11
    • 2014-03-20
    • 1970-01-01
    • 2015-01-02
    相关资源
    最近更新 更多