课程
/前端开发
/JavaScript
/JavaScript进阶篇
为什么insertBefore()的第二个参数不填,没有效果??
2016-09-30
源自:JavaScript进阶篇 9-13
正在回答
我本来也理所当然认为必须,但是看了你的回复后,突发奇想,去试了一下,结果发现,第二个参数可以省略,省略后效果等同 appendChild(),以下是两张效果和源码图:
至于你说的没效果,应该是你其他地方的代码疏忽了,你再检查看看。
otest.insertBefore(newnode,otest.childNodes[1]) 什么意思
答案:
在指定元素前插入元素或者文本,这需要在调用insertBefore的时候传2个参数,第一个参数newnode 是要插入的元素,第二个参数otest.childNodes[1] 是坐标元素,比如有ABCD四个元素,需要将一段文本插入到B的前面,那么参数二就是B。同理:otest.childNodes[1]就是你要把这个元素插入到的位置;
otest.childNodes[1]是个可选参数,如果不填的话,为了保证该JS在火狐下的兼容性,应该传个null进去。
lvbukai86
newnode(a) Node 对象 必需。需要插入的节点对象。
existingnode(b) Node object 可选。在其之前插入新节点的子节点。如果未规定,则 insertBefore 方法会在结尾插入 newnode。
_十年 提问者
举报
本课程从如何插入JS代码开始,带您进入网页动态交互世界
1 回答为什么参数i是必须的?
3 回答node.replaceChile(newnode,oldnode)这个里面的参数必须是newnode和oldnode吗,可以用别的参数替换吗
2 回答为什么函数中,参数必须是obj,我换成其他参数就不能运行
3 回答关于数组排序sort(a,b)里两个参数的问题?
2 回答为什么a+b不对,必须要写parseInt(a)+parseInt(b)