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

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

慕前端9656150

2016-08-15 23:00

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

这样写有什么问题

写回答 关注

3回答

  • 我学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规定的

    慕前端965...

    我可不可以这样理解 像插入节点 删除节点 替换节点 这些都是属性 有属性就需要有属性的对象, 所以前面要有父节点。

    2016-08-16 02:22:03

    共 1 条回复 >

  • 九日谈
    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标签组成的数组。

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题