如果不添加头结点,需要对插入位置进行判断:
如果是第0个元素,需要创建新节点,其next指向head,并且head修改指向为新节点;
如果不是第0个元素,直接找到第i-1个元素节点,插入新节点,其next指向第i个元素,同时修改第i-1个元素节点的next指向为新节点。
第一种function insertEle() { var oTest = document.getElementById("box-one")var newNode = document.createElement("div")var reforeNode = document.getElementById("p1")newNode.innerHTML = " This is a newcon "oTest.insertBefore(newNode,reforeNode.nextSibling)//新建的元素节点插入id为P1节点元素的后面。 }
第二种// 自定义函数向后插入function insertAfter( newElement, targetElement){ var parent = targetElement.parentNode if ( parent.lastChild == targetElement ) {// 如果最后的节点是目标元素,则直接添加。因为默认是最后parent.a( newElement ) } else {//如果不是,则插入在目标元素的下一个兄弟节点的前面。也就是目标元素的后面parent.insertBefore( newElement, targetElement.nextSibling ) }}
可以使用JavaScript自带的insertBefore。
实例向列表中插入一个项目:
document.getElementById("myList").insertBefore(newItem,existingItem) 定义和用法:
insertBefore() 方法在您指定的已有子节点之前插入新的子节点。
提示:如果您希望创建包含文本的新列表项,请记得创建文本节点形式的文本,以便追加到 LI 元素中,然后向列表插入这个 LI。
您也可以使用 insertBefore 方法插入/移动已有元素。
实例:
把一个列表项从一个列表移动到另一个中:
var node=document.getElementById("myList2").lastChild
var list=document.getElementById("myList1")
list.insertBefore(node,list.childNodes[0])
插入之前:
Coffee
Tea
Water
Milk
插入之后:
Milk
Coffee
Tea
Water
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)