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

墨初学习笔记1241

在前几篇的博文中,我们说了利用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自带的函数。不能直接调用,一定要先创建再调用!

相关文章

javascript中的innerHTML属性有什么作用

javascript中的innerHTML属性有什么作用

innerHTML在javaScript中具有双向功能,一是可以从指定的元素对象中获取内容,二是可以把自定义内容插入到指定的元素对象中去。定义和用法innerHTML属性用于设置或返回指定标签之间的H...

这是问斩的标题

这是问斩的标题

很多的网站,尤其是一些手机官网或某种产品的官网,都会把自己网站的页面中一些元素作得美观起来。比如一些产吕,在打开网页或网页下拉到产品图片的时候,图片就像活了一样动起来,很是有趣。今天介绍一款,让网页元...

PHP读取大文件的多种方法介绍

读取大文件一直是一个头痛的问题,我们像使用php开发读取小文件可以直接使用各种函数实现,但一到大文章就会发现常用的方法是无法正常使用或时间太长太卡了,下面我们就一起来看看关于php读取大文件问题解决办...

jQuery获取当前页面的URL信息

在网站时不少客户要求导航条具有高亮功能,如果换到以前肯定是一个页面一个页面的去写代码,那样的话太麻烦,而且还不利于后期的维护和修改。不过现在有了jQuery了可以省去好多的事,再麻烦的事不就是一行JQ...

HTML DOM nodeType 属性

HTML DOM nodeType 属性

JavaScript中给出这样一个操作HTML或XML的一个属性:nodeType,px 它可以返回以数字值返回指定节点的节点类型!如果节点是元素节点,则 nodeType 属性将返回 1。如果节点是...

500 501 502 503 504 505 详解

500 501 502 503 504 505 详解

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

发表评论    

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