我正在寻找一种将javascript对象添加到DOM而不重新定义对象的方法。在DOM中添加JavaScript对象
我已经创建了一个函数,将所有对象方法放入一个新对象中,将对象重新定义为一个新的DOM元素,并将所有对象放回到它上面,但这并不是我想要的。我需要更新对象而不使用任何返回语句。
我这里有一个例子:http://jsfiddle.net/y56wS/
function addToDOM(obj) {
temp = {};
for (p in obj) {
temp[p] = obj[p];
}
obj = document.createElement('prop');
document.body.appendChild(obj);
for (p in temp) {
obj[p] = temp[p];
}
return obj;
}
var obj = {var1:123};
obj = addToDOM(obj);
生成的代码模板应该是这样的:
function addToDOM(obj) {
//Code for method
//No return statement
}
var obj = {var1:123};
//No obj=
addToDOM(obj);
要做到这一点,真的有可能成为addToDOM
函数内没有obj =
所以它不会被重新定义,也不需要返回声明。有没有简单的将JavaScript对象扩展到DOM的方法?
_“我正在寻找一种方法来添加一个JavaScript对象到DOM”_ - 让我阻止你,并说_huh?_为什么?显然我完全错过了这一点,因为将一个JS对象添加到DOM对我来说没有意义。浏览器如何显示它?如果它不显示它,为什么你会这样做? – nnnnnn 2012-08-15 07:09:50
我很抱歉没有详细说明。我试图创建一个defineObject getter/setter polyfill(ish)的东西,这样我的代码就可以在IE6 +以及所有其他主流浏览器中工作。很多人都知道,如果对象是DOM的一部分,那么只有在IE8中才有可能,如果IE6/7在DOM中也有解决方法。只要在定义'obj = {}'后调用'obj = addToDOM(obj)',Object.defineProperty就可以完美工作。我只是想让它可以包含'addToDOM(obj)'作为polyfill的一部分,并且要做到这一点,我必须将其添加到DOM元素而不用重新定义它。这更清楚吗? – 2012-08-15 07:18:19