javascript - 请教,用原生js插入html的问题
给我你的怀抱
给我你的怀抱 2017-06-26 10:58:39
[JavaScript讨论组]

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

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

-----更新

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

给我你的怀抱
给我你的怀抱

全部回复(3)
高洛峰

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

试试 insertAdjacentHTML

淡淡烟草味

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

淡淡烟草味

报错信息很明显了,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);
        };
    })();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号