使用JavaScript在创建好的html文档内添加新的元素节点

简介: 使用JavaScript在创建好的html文档内添加新的元素节点

前言


动态的改变原有html文档结构


一、基本语法与解释


1.在某元素附近创建一个新的元素节点


 // 将节点插入指定标签之后
 // 创建一个p标签对象
 var para = document.createElement("p");
 // 创建文本对象
 var node = document.createTextNode("这是一个新的段落。");
 // 将文本对象加入p标签对象
 para.appendChild(node);
 // 选出id=div1的标签
 var element = document.getElementById("div1");
 // 在该标签之后加上刚创建的p标签
 element.appendChild(para);
 // 将节点插到指定标签之前
 var para = document.createElement("p");
 var node = document.createTextNode("这是一个新的段落。");
 para.appendChild(node);
 var element = document.getElementById("div1");
 var child = document.getElementById("p1");
 element.insertBefore(para, child);


2.删除标签


 // 删除存在的标签
 // 以下代码是已知要查找的子元素,然后查找其父元素,再删除这个子元素
 //(删除节点必须知道父节点):
 var parent = document.getElementById("div1");
 var child = document.getElementById("p1");
 parent.removeChild(child);


3.修改标签


// 替换标签
var para = document.createElement("p");
var node = document.createTextNode("这是一个新的段落。");
//将内容添加进标签
para.appendChild(node);
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
//将parent中的para标签替换为child
parent.replaceChild(para, child);


4.使用选择器选出某一类标签


// 选出所有同一类型的标签 获取HTMLCollection 对象。
    function myFunction() {
        // getElementsByTagName() 方法返回所有同一类型的标签
        var myCollection = document.getElementsByTagName("p");
        var i;
        for (i = 0; i < myCollection.length; i++) {
            // 对标签的属性进行修改
            myCollection[i].style.color = "red";
        }
    }


二、实际应用


1.完整代码


代码如下:


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
    <body>
        <div id="div1">
        <p id="p1">这是一个段落。</p>
        <p id="p2">这是另外一个段落。</p>
        </div>
    <script>
        // 将节点插入指定标签之后
        // 创建一个p标签对象
        var para = document.createElement("p");
        // 创建文本对象
        var node = document.createTextNode("这是一个新的段落。");
        // 将文本对象加入p标签对象
        para.appendChild(node);
        // 选出id=div1的标签
        var element = document.getElementById("div1");
        // 在该标签之后加上刚创建的p标签
        element.appendChild(para);
        // 将节点插到指定标签之前
        var para = document.createElement("p");
        var node = document.createTextNode("这是一个新的段落。");
        para.appendChild(node);
        var element = document.getElementById("div1");
        var child = document.getElementById("p1");
        element.insertBefore(para, child);
        // 删除存在的标签
        // 以下代码是已知要查找的子元素,然后查找其父元素,再
        删除这个子元素(删除节点必须知道父节点):
        var parent = document.getElementById("div1");
        var child = document.getElementById("p1");
        parent.removeChild(child);
        // 替换标签
        var para = document.createElement("p");
        var node = document.createTextNode("这是一个新的段落。");
        para.appendChild(node);
        var parent = document.getElementById("div1");
        var child = document.getElementById("p1");
        parent.replaceChild(para, child);
        // 选出所有同一类型的标签 获取HTMLCollection 对象。
        function myFunction() {
            // getElementsByTagName() 方法返回所有同一类型的标签
            var myCollection = document.getElementsByTagName("p");
            var i;
            for (i = 0; i < myCollection.length; i++) {
                // 对标签的属性进行修改
                myCollection[i].style.color = "red";
            }
        }
    </script>
    </body>
</html>


2.运行效果


7078d960d58e4e34b6cd4b07cf041514.png

三、注意事项


//使用选择器选出某一类标签获取HTMLCollection 对象时
   // HTMLCollection 不是一个数组!
   // HTMLCollection 看起来可能是一个数组,但其实不是。
   // 你可以像数组一样,使用索引来获取元素。
   // HTMLCollection 无法使用数组的方法: valueOf(), pop(), push(), 或 join() 
// 第二种筛选方法  NodeList
// 所有浏览器的 childNodes 属性返回的是 NodeList 对象。
// 大部分浏览器的 querySelectorAll() 返回 NodeList 对象。
    /*
    HTMLCollection 与 NodeList 的区别
        HTMLCollection 是 HTML 元素的集合。
        NodeList 是一个文档节点的集合。
        NodeList 与 HTMLCollection 有很多类似的地方。
        NodeList 与 HTMLCollection 都与数组对象有点类似,
        可以使用索引 (0, 1, 2, 3, 4, ...) 来获取元素。
        NodeList 与 HTMLCollection 都有 length 属性。
        HTMLCollection 元素可以通过 name,id 或索引来获取。
        NodeList 只能通过索引来获取。
        只有 NodeList 对象有包含属性节点和文本节点。
    */


总结


增删改查元素节点的时候,一般用于信息管理系统。信息的统计。但是由于现在市场上有许多成熟的框架,我们一般也用不到。


目录
相关文章
|
3天前
|
JavaScript
JS鼠标框选并删除HTML源码
这是一个js鼠标框选效果,可实现鼠标右击出现框选效果的功能。右击鼠标可拖拽框选元素,向下拖拽可实现删除效果,简单实用,欢迎下载
11 4
|
3天前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
1天前
|
移动开发 HTML5
html5+three.js公路开车小游戏源码
html5公路开车小游戏是一款html5基于three.js制作的汽车开车小游戏源代码,在公路上开车网页小游戏源代码。
10 0
html5+three.js公路开车小游戏源码
|
10天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
53 6
|
14天前
HTML 元素
HTML文档由HTML元素定义,元素包括开始标签、内容和结束标签。某些元素内容为空,可在开始标签中关闭。大多数元素可拥有属性,且元素间可相互嵌套,形成复杂结构。
|
15天前
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。
|
15天前
|
JavaScript
HTML DOM 节点
HTML DOM(文档对象模型)将HTML文档视为节点树,其中每个部分都是节点:文档本身是文档节点,HTML元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。节点间存在父子及同胞关系,形成层次结构。
|
26天前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
40 4
|
27天前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
34 4
|
25天前
|
JavaScript 前端开发
JavaScript 与 HTML 的结合
JavaScript 与 HTML 的结合
15 0