为什么最后一句回报错

为什么最后一句回报错

    var ul = document.createElement('ul');

    var comment = document.createComment("创建li");

    for (var i = 0; i < 3; i++) {

        var li = document.createElement('li');

        li.className = 'li';

        ul.id="ul"

        var text = document.createTextNode('这是第' + (i + 1) + '个li')

        li.appendChild(text);

        ul.appendChild(li)

    }

    document.body.appendChild(ul);

    document.getElementById('ul').insertBefore(comment, ul)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
小丸子爱吃菜 2017-12-12 10:04:25

报错的提示是:要插入新节点之前的节点不是该节点的子节点。

是要在ul之前插入的,所以insertBefore方法的对象不能是ul。


小丸子爱吃菜 2017-12-11 15:30:06

可以参考下面的代码,红框标注的是修改和添加的

http://img1.sycdn.imooc.com//climg/5a2e33c9000120ac07000396.jpg

祝学习愉快!

  • 提问者 肆意妄为 #1
    首先感谢回复,其实都不用这么麻烦,只是将我最后一句换成 document.body.insertBefore(comment, ul) 就可以了,我要问的也不是这个,我是想知道为什么 document.getElementById('ul').insertBefore(comment, ul)这样是错的,按我的理解这个没问题啊。。
    2017-12-11 19:49:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
进击JavaScript核心 2018
  • 参与学习       466    人
  • 提交作业       74    份
  • 解答问题       635    个

JavaScript不仅能实现静态页面到动态特效的转变,还能完成数据的动态交互,但是关于js到底功能有多强大,大家还是有所期待的,本路径将带你深入到js中,一一揭开JavaScript的神秘面纱。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师