javascript在指定的元素前或后插入新元素

xiaoqihv8个月前 (04-08)前端设计48

在前几篇的博文中,我们说了利用appendChild方法可以在DOM文档流中指定的元素后追加利用createElement方法和createTextNode方法创建的新元素,但是appendChild追加的元素都是子元素,不可以现实我们需要下面说的在指定元素前或后插入新元素的方案。

insertBefore()方法

insertBefore()方法,可以实现把一个新元素插入到现在元素的前面,与现有元素形成兄弟关系。

前提条件

1、新元素,你想插入的新元素(newElement)

2、目标元素,你想把新元素插入到哪个元素的前面(targetELement)

3、父元素,目标元素的父元素(parentElement)

语法:

parentElement.insertBefore(newElement,targetElement);

注:

1、我们没有必要搞清楚或获取目标元素的父元素是谁,因为目标元素(targetElement)的父元素就是它本身的parentNode属性。

2、在DOM一个元素的父元素必须是另一个元素节点,属性节点或文本节点的子元素不允许是元素节点

例:

insertBefore()方法

1、我们新建一个P标签元素

2、然后新建一个“你好,墨初”的文本节点

3、将这两个节点都插入到ID为mochu的元素的前面

HTML代码:

<!DOCTYPE html>    <head>    </head>    <body>        <div id=“mochu”>        ........        </div>    </body></html>

JavaScript代码

window.onload = function(){    var para = document.createElement("p");//新建标签元素    var txt = document.createTextNode("你好,墨初");//文本元素    var mochu = getElementById("mochu");//获取指定元素    para.appendChild(txt);//元素追加    mochu.parentNode.insertBefore(para,mochu);}

现在我们知道如何在一个目标元素前面加入新元素了,那在目标后面如何加入新元素呢?

insertAfter()自定义函数

javascript没有给我们提供,在目标元素后面加入新元素的函数,但是我们这里可以自己写

命名函数为 insertAfter

QQ截图20180111213615.png

代码:

function insertAfter(newElement,targetElement){    var parent = targetElement.parentNode;    if(parent.lastChild == targetElement){        parent.appendChild(newElement);    }else{        parent.insertBefore(newElement,targetElement.nextSibling);    }}

通边上面的代码,我们新建了一个可以在指定元素后面追加元素的函数insertAfter(),当然上面的示例我们也可以这样修改!

例:

JS在目标元素后追加新元素

1、我们新建一个P标签元素

2、然后新建一个“你好,墨初”的文本节点

3、将这两个节点都插入ID为mochu元素的后面

HTML代码:

<!DOCTYPE html>    <head>    </head>    <body>        <div id=“mochu”>        ........        </div>    </body></html>

JavaScript代码

window.onload = function(){    var para = document.createElement("p");//新建标签元素    var txt = document.createTextNode("你好,墨初");//文本元素    var mochu = getElementById("mochu");//获取指定元素    para.appendChild(txt);//元素追加    insertAfter(para,mochu);}

说明一下:insertAfter()函数为自定义的函数,并不是Javascript自带的函数。不能直接调用,一定要先创建再调用!

相关文章

500 501 502 503 504 505 详解

500 501 502 503 504 505 详解

服务器会经常的出现错误,那么在平时的时候出现了服务器错误,我们要如何去解决了,今天小编就简单的说说服务器500错误、501错误、502错误、503错误、504错误、505错误的一些问题所在。服务器50...

JavaScript中for...in 语句详解

JavaScript中for...in 语句详解

在编程中我们会使用到各式各样的循环语句,以使我们可以对一个数组进行读操作或是写入赋值的操作,当然在javascript中这少不了这样的循环语句的存在。今天记录一下关于JavaScript for......

JavaScript中常见获取元素的方法汇总

JavaScript中常见获取元素的方法汇总

网页的制作离不开JavaScript(JS)今天就说说那些关于JavaScript(JS)操作DOM节点的一些属性,做个记录,以备后续查找!getattribute()DOM提供了一个名为getEle...

javascript中的addEventListener()方法

javascript中的addEventListener()方法

我们操作HTML DOM对象的时候,可以利addEventListener()方法为某个被选中的DOM对象添加一个事件,用来操作这个被选中的对象。下面就记录一下,如果利javascript的addEv...

JaveScript操作DOM节点的childNodes属性

JaveScript操作DOM节点的childNodes属性

在一棵节点树上(DOM文档),childNodes属性可以获取任何一个节点下的所有子元素节点,它获取的值是一个包含这个元素全部子元素的数组,但是这个数组中包含的东西太多,几乎每一样东西都是一个节点,甚...

jQuery中的jQuery.noConflict()函数说明

jQuery中的jQuery.noConflict()函数说明

在jQuery库中,几乎所有的插件都被限制在它的命名空间里,通常全局对象都被很好的储存在jQuery的命名空间里,当jQuery与其它的JavaSscript库使用时不会引起冲突一般情况下jQuery...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。