附加对象到innerHTML,并从innerHTML获得该对象

append object to innerHTML and get that object from innerHTML

本文关键字:对象 innerHTML 并从      更新时间:2023-09-26

在jsfiddle中有一个例子。

我想知道我是否可以将一个javascript对象附加到innerHTML中,从而再次从innerHTML中获得该对象作为对象。

,

alert((this.innerHTML).html);

这只是一个例子,不要问我你为什么需要这个?我试图编辑现有的代码,我必须这样做。我必须通过div. innerhtml传输一个对象。

检查这个文件。在其中,我将对象作为'data-'属性添加到div中,并使用JSON将其转换为字符串。之后,向div添加一些注释会触发DOMSubtreeModified -处理程序,在该处理程序中检索并提醒对象的"html"部分。这有什么好处理的吗?

在这种情况下,很可能您唯一的选择是将对象转换为字符串,然后将其放入元素中。(这是通过循环遍历键、值来实现的。)

您可以将此过程反向转换回obj。

我知道一些javascript库有帮助函数,使这个过程非常简单。

您可以尝试将数据直接添加到dom元素中,而不是作为其内容。

tempDiv.objData = myObject;

建议使用JSON,但不使用代码。所以:

function addObjAsJSON(el, obj) {
  el.setAttribute('data-myJSON', encodeURIComponent(JSON.stringify(obj)));
}
function getObjAsJSON(el) {
  return JSON.parse(decodeURIComponent(el.getAttribute('data-myJSON')));
}

应该允许您添加任何东西作为序列化对象,然后获取它。你应该添加一些错误检查,使它健壮(例如,检查你从调用getAttribute得到一个字符串)。

对于没有内置JSON支持的用户代理,请参阅json.org,在javascript部分有到JSON .js的链接。