哪里出错了

来源:9-13 插入节点insertBefore()

lpn121

2015-03-31 16:48

otest.insertBefore(newnode,otest[i]);    这句话错了?

写回答 关注

3回答

  • Crazy丶魂
    2015-03-31 18:13:44
    已采纳

    回复 lpn121:刚没认真看,你代码还是很有问题的
    这么写才是正确的
    var otest = document.getElementsByTagName("ul")[0];
    var newnode = document.createElement("li");
    newnode.innerHTML="PHP";
    for(var i=0;i<otest.childNodes.length;i++){
        if(otest.childNodes[i].innerHTML=="HTML"){
           otest.insertBefore(newnode,otest.childNodes[i]);        
        }else{
           document.write("no");
        }
    }

    Crazy丶...

    insertBefore() 方法是在指定的已有子节点之前插入新的子节点

    2015-03-31 18:15:42

    共 1 条回复 >

  • 菜鸟起飞
    2015-03-31 19:05:02

    otest.insertBefore(newnode,otest[i]);  改成otest[i].parentNode.insertBefore(newnode,otest[i]);  

    lpn121

    返回父节点

    2015-04-01 09:48:54

    共 1 条回复 >

  • Crazy丶魂
    2015-03-31 16:55:25

    var otest = document.getElementsByTagName("ul")[0].childNodes;

    把后面的.childNodes去了,insertBefore你必须明确指出哪个节点,childNodes返回的是子节点NodeList

    Crazy丶... 回复lpn121

    是的,childNodes这个方法就是取的所有孩子节点

    2015-03-31 17:39:49

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题