"append"在Internet Explorer中的HTMLDivElement对象上未定义



我有下面的代码行

var divElement= document.createElement( 'div' );
divElement.setAttribute( "id", "testId" );
element[ 0 ].append( divElement);

其中"element"是指令中的$element。因此元素[0]是一个HTMLdiv对象。上面的代码在Chrome和Firefox中运行良好,但在IE中,它给出了"append"是未定义的,并表示"Object不支持属性或方法"append"。

我建议您使用angular.element.append()而不是ParentNode.append。否则,您可能需要使用polyfill来支持IE。

ParentNodemixin的append方法是一个相对较新的添加;Internet Explorer(目前(是一个相当旧的浏览器。

在您的情况下,由于您附加的是单个元素(而不是HTML或多个节点(,因此可以使用appendChild(在Node接口上(:

element[ 0 ].appendChild( divElement);
// ----------------^^^^^

旁注:要设置元素的id,可以使用反射属性而不是setAttribute:

divElement.id = "testId";