问答详情
源自:9-13 插入节点insertBefore()

哪里出错了

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

提问者:lpn121 2015-03-31 16:48

个回答

  • 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");
        }
    }

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

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

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

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

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