搜索

首页  >  问答  >  正文

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

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

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

-----更新

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

给我你的怀抱给我你的怀抱2715 天前1077

全部回复(3)我来回复

  • 高洛峰

    高洛峰2017-06-26 11:00:39

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

    试试 insertAdjacentHTML

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-26 11:00:39

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

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-26 11:00:39

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

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

    你得把字符串转成dom

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

    var toElement = (function(){
            var p = document.createElement('p');
            return function(html){
                p.innerHTML = html;
                var el = p.firstChild;
                return p.removeChild(el);
            };
        })();

    回复
    0
  • 取消回复