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 相关文章推荐
Javascript 两个窗体之间传值实现代码
Sep 25 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
Apr 24 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
Jan 02 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
Mar 26 Javascript
Express.JS使用详解
Jul 17 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
Apr 28 Javascript
AngularJS中transclude用法详解
Nov 03 Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 Javascript
使用axios实现上传图片进度条功能
Dec 21 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
vue h5移动端禁止缩放代码
Oct 28 Javascript
vue穿梭框实现上下移动
Jan 29 Vue.js
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
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
基于php下载文件的详解
2013/06/02 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
php连接mysql数据库
2017/03/21 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
Python入门篇之面向对象
2014/10/20 Python
Python调用C++程序的方法详解
2017/01/24 Python
python 列表降维的实例讲解
2018/06/28 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
大专毕业生简历的自我评价
2013/10/20 职场文书
电台实习生求职信
2014/02/25 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
小学记事作文之200字
2019/08/06 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python