将HTML元素转换为“节点”类型

时间:2017-02-24 18:40:12

标签: javascript html

我正在开发一个HTML项目。基本上将HTML节点保存到JavaScript的Object中以将它们附加到元素中。这是我的HTML,JavaScript和错误。

HTML

...
    <div id="holder"></div>
...

的JavaScript

var _handler = {};
var _holder = document.getElementById('holder');
var some_example = [{"id":"item_1"}, {"id":"item_2"}]

function create(tag, id) { /*Created a DOMObject */
    var elem = document.createElement(tag);
    _handler[id] = elem;
}
function spawn() {
   for (var k in _handler) {
       _holder.appendChild(_handler[k]); //<----- Here's the error occurring, given at very last.
   }
}
function main() { /* Main function */
    for (var x=0;x < some_example.length;x++) {
         create('div', some_example.id);
    }
    spawn();
}

抱歉这个小小的复杂脚本。无论如何,所有的工作都很顺利,但appendChild执行下面给出的 bobo

错误

  

未捕获的TypeError:无法在'Node'上执行'appendChild':参数1不是'Node'类型。

希望,你们有任何想法。谢谢。

1 个答案:

答案 0 :(得分:3)

确保在hasOwnProperty循环中使用for

for (var k in _handler) {
   if (_handler.hasOwnProperty(k)) {
       _holder.appendChild(_handler[k]); 
   }
}