请教,用原生js插入html的问题

Anson
  • 198

clipboard.png

clipboard.png

报错信息:Uncaught TypeError: Failed to execute 'insertBefore' on 'Node': parameter 1 is not of type 'Node'.

我想在触发addChild方法的时候,在对应的tr之后拼接字符串,请问addChild应该怎么写才对呢

-----更新

回答的各位朋友,谢谢了,问题解决了,用了一楼的方法

clipboard.png

回复
阅读 3.8k
3 个回答

第一个参数要求是Dom节点不是字符串

试试 insertAdjacentHTML

tpl是个字符串,不是一个node对象,所以报错;
你可以利用事件冒泡,把addChild方法写在tr或者tbody上(依据是否是每个tr都需要这个方法),
然后利用event对象的target属性来找到对应的tr,然后进行后面操作就可以了;

报错信息很明显了,tpl是一个字符串,不是一个node元素

https://developer.mozilla.org...

你得把字符串转成dom

比如类似这样的函数,来讲字符串转成dom,代码仅做参考

var toElement = (function(){
        var div = document.createElement('div');
        return function(html){
            div.innerHTML = html;
            var el = div.firstChild;
            return div.removeChild(el);
        };
    })();
宣传栏