我有以下代码,我试图在多个标签内添加一个已编译的HTML字符串,但这些元素没有被插入:
for (var i = 0; i < boxes.length; i++) {
var ctxmenu = $compile('<a context-menu="menuOptions">click here</a>')($scope);
document.getElementById("box-"+i).append(ctxmenu[0]);
}
如果我尝试在没有for loop
的情况下添加它:
document.getElementById("box-"+i).append(ctxmenu[0]);
然后它会起作用。 任何想法如何做到这一点?
<小时/> 的修改
问题在于我使用的是.append()
方法,而不是.appendChild()
。
答案 0 :(得分:2)
您正在使用javascript,.appendChild(NodeElement)
。
Node.appendChild()
方法将节点添加到列表的末尾 指定父节点的子节点。如果给定的孩子是参考 对于文档中的现有节点,appendChild()
将其移出 当前职位到新职位(没有要求 在将节点附加到其他节点之前,将节点从其父节点中删除 节点)。
变化:
document.getElementById("box-"+i).append(ctxmenu[0]);
要:
document.getElementById("box-"+i).appendChild(ctxmenu[0]);