JavaScript实现动态添加、移除元素或属性的方法分析


Posted in Javascript onJanuary 03, 2019

本文实例讲述了JavaScript实现动态添加、移除元素或属性的方法。分享给大家供大家参考,具体如下:

JavaScript 动态添加、移除元素

appendChild(newnode)
向节点的子节点列表的末尾添加新的子节点。

insertBefore(newnode, existingnode)
在已有子节点之前插入新的子节点。

removeChild(node)
删除元素的某个指定的子节点,并以 Node 对象返回被删除的节点,如果节点不存在则返回 null。

innerHTML
属性设置或返回表格行的开始和结束标签之间的 HTML。

测试用例

<html>
  <head>
    <style type="text/css">
      .style1 { background-color:yellow; width:200px;height:100px;float:left;}
      .style2 { background-color:#aa0; width:200px;height:100px;float:left;}
      .style3 { background-color:rgb(0,200,200); width:200px;height:100px;float:left;}
      .item-style {background-color:pink;}
    </style>
    <script type="text/javascript">
      function addElement1() {
        var container = document.getElementById("container1");
        var elem1 = document.createElement("div");
        elem1.setAttribute("class", "item-style");
        var textnode1 = document.createTextNode("appendChild");
        elem1.appendChild(textnode1);
        container.appendChild(elem1);
        var middleChild = document.getElementById("middle-child");
        var elem2 = document.createElement("div");
        elem2.setAttribute("class", "item-style");
        var textnode2 = document.createTextNode("insertBefore");
        elem2.appendChild(textnode2);
        container.insertBefore(elem2, middleChild);
      }
      function addElement2() {
        var container = document.getElementById("container2");
        container.innerHTML = "<div>Hello World \"2\"</div>";
      }
      function removeNode() {
        var container = document.getElementById("container3");
        var myNode = document.getElementById("myNode");
        container.removeChild(myNode);
      }
      function operateElements() {
        addElement1();
        addElement2();
        removeNode();
      }
    </script>
  </head>
  <body onload="operateElements()">
    <div id="container1" class="style1">
      <div id="middle-child">Middle Child</div>
    </div>
    <div id="container2" class="style2"></div>
    <div id="container3" class="style3"><p id="myNode">Hello World</p></div>
    <div style="clear:both;"/>
    <button onclick="operateElements()">Operate Elements</button>
  </body>
</html>

 JavaScript实现动态添加、移除元素或属性的方法分析

JavaScript 动态添加、移除属性

setAttribute(attributename, attributevalue)
添加指定的属性,并为其赋指定的值。将属性设置为undefined等同于删除。

removeAttribute(attributename)
删除指定的属性。

getAttributeNode(attributename)
以 Attr 对象返回指定属性名的属性值。

removeAttributeNode(attributenode)
删除 Attr 形式指定的属性,同时返回被删除的Attr 形式的属性。

测试用例

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
      function operateAttributes() {
        var node2 = document.getElementById("node2");
        //设置font-style和font-size无效,这些属性脱离style单独设置是无效的
        node2.setAttribute("style", "color:red;");
        var node3 = document.getElementById("node3");
        node3.setAttribute("font-size", undefined);
        var node4 = document.getElementById("node4");
        //font-style和font-size的remove无效,因为它们没有单独存在
        node4.removeAttribute("font-size");
        var node5 = document.getElementById("node5");
        //无法获取font-style和font-size
        var attributeNode = node5.getAttributeNode("style");
        var attr = node5.removeAttributeNode(attributeNode);
        node5.innerHTML = "attr=" + attr + ", attr.name=" + attr.name + ", attr.value=" + attr.value;
      }
    </script>
  </head>
  <body onload="operateAttributes()">
    <p id="node0" style="font-style:italic;font-size:12px;">0 Hello World</p>
    <p id="node1" font-size="12px" font-style="italic">1 Hello World : font-size、font-style等,这些属性脱离style单独设置是无效的</p>
    <p id="node2" style="font-style:italic;font-size:12px;">2 Hello World setAttribute</p>
    <p id="node3" style="font-style:italic;font-size:12px;">3 Hello World setAttribute</p>
    <p id="node4" style="font-style:italic;font-size:12px;">4 Hello World removeAttribute</p>
    <p id="node5" style="font-style:italic;font-size:12px;">5 Hello World getAttributeNode & removeAttributeNode</p>
  </body>
</html>

JavaScript实现动态添加、移除元素或属性的方法分析

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 Javascript
Javascript获取图片原始宽度和高度的方法详解
Sep 20 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
Jan 04 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
原生js检测页面加载完毕的实例
Sep 11 Javascript
JavaScript设计模式之命令模式实例分析
Jan 16 Javascript
浅谈Vue项目骨架屏注入实践
Aug 05 Javascript
node.js使用stream模块实现自定义流示例
Feb 13 Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 #Javascript
JavaScript实现数字前补“0”的五种方法示例
Jan 03 #Javascript
35个最好用的Vue开源库(史上最全)
Jan 03 #Javascript
原生js实现移动端Touch轮播图的方法步骤
Jan 03 #Javascript
发布一款npm包帮助理解npm的使用
Jan 03 #Javascript
用node开发并发布一个cli工具的方法步骤
Jan 03 #Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
Jan 03 #Javascript
You might like
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
PHP数组实例详解
2016/06/26 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
JS 对象介绍
2010/01/20 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
Python实现的密码强度检测器示例
2017/08/23 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
Linux的主要特性
2014/10/06 面试题
外语系毕业生自荐信范文
2013/12/16 职场文书
导游实习生自荐书
2014/01/28 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
董事会决议范本
2015/07/01 职场文书
交通事故协议书范本
2016/03/19 职场文书