insertBefore(a,b),参数2是必须的参数吗?

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

_十年

2016-09-30 21:08

为什么insertBefore()的第二个参数不填,没有效果??

写回答 关注

3回答

  • 慕粉3951534
    2016-10-13 11:18:48

    我本来也理所当然认为必须,但是看了你的回复后,突发奇想,去试了一下,结果发现,第二个参数可以省略,省略后效果等同 appendChild(),以下是两张效果和源码图:

    57fefcb80001441705000228.jpg

    57fefcb90001a89e05000222.jpg


    至于你说的没效果,应该是你其他地方的代码疏忽了,你再检查看看。


  • Amosxu
    2016-10-01 11:48:50

    otest.insertBefore(newnode,otest.childNodes[1])  什么意思

    答案:

    在指定元素前插入元素或者文本,这需要在调用insertBefore的时候传2个参数,第一个参数newnode 是要插入的元素,第二个参数otest.childNodes[1] 是坐标元素,比如有ABCD四个元素,需要将一段文本插入到B的前面,那么参数二就是B。同理:otest.childNodes[1]就是你要把这个元素插入到的位置; 

    otest.childNodes[1]是个可选参数,如果不填的话,为了保证该JS在火狐下的兼容性,应该传个null进去。


    lvbuka...

    可以了, 感谢大神!

    2019-01-29 16:40:09

    共 2 条回复 >

  • Amosxu
    2016-10-01 10:10:28

    newnode(a)    Node 对象    必需。需要插入的节点对象。    

    existingnode(b)    Node object    可选。在其之前插入新节点的子节点。如果未规定,则 insertBefore 方法会在结尾插入 newnode。    


    _十年

    为什么不传第二个参数,不能在结尾插入newnode啊?

    2016-10-01 10:22:14

    共 1 条回复 >

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题