为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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

57fefcb80001441705000228.jpg

57fefcb90001a89e05000222.jpg


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


0 回复 有任何疑惑可以回复我~

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

答案:

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

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


0 回复 有任何疑惑可以回复我~
#1

lvbukai86

传null还是报错
2019-01-29 回复 有任何疑惑可以回复我~
#2

lvbukai86

可以了, 感谢大神!
2019-01-29 回复 有任何疑惑可以回复我~

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

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


0 回复 有任何疑惑可以回复我~
#1

_十年 提问者

为什么不传第二个参数,不能在结尾插入newnode啊?
2016-10-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信