我正在尋找一種將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