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

使用getElementsByTagName("li")应该怎么写

var otest = document.getElementsByTagName("li");
var li=document.createElement("li");
li.innerHTML="PHP";
otest.insertBefore(li,otest[0])

这样写有什么问题

提问者:慕前端9656150 2016-08-15 23:00

个回答

  • 我学C语言
    2016-08-15 23:29:23
    已采纳

    var ul=document.getElementById('test'); //获取父元素节点

    var otest = document.getElementsByTagName("li");
    var li=document.createElement("li");
    li.innerHTML="PHP";
    ul.insertBefore(li,otest[0]);//你错在这里,前面应该是要父元素节点,括号里面才是平级节点,

    //我只能找出你错的地方,为什么前面需要父节点我也不太清楚,可能是API规定的

  • 九日谈
    2016-08-18 23:03:02

    <script type="text/javascript">
    
      var otest = document.getElementsByTagName('li')[0];
      var new1 =document.createElement('li');
      new1.innerHTML="new the li"
      otest.insertBefore(new1)
      
      </script>

    可以这样写

  • 慕粉3719801
    2016-08-16 11:47:39

    insertBefore() 方法可在已有的子节点前插入一个新的子节点。根据定义,在otest.insertBefore() 当中,otest必须是父节点。你定义的otest变量不是父节点,而是由li标签组成的数组。