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小括号“()”的多义性
Dec 03 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
Jan 07 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
Jun 10 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
Aug 13 Javascript
基于jquery二维码生成插件qrcode
Jan 07 Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 Javascript
Bootstrap笔记—折叠实例代码
Mar 13 Javascript
JS中的JSON对象的定义和取值实现代码
May 09 Javascript
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
微信自定义分享链接信息(标题,图片和内容)实现过程详解
Sep 04 Javascript
JavaScript中继承原理与用法实例入门
May 09 Javascript
vue 递归组件的简单使用示例
Jan 14 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
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
js实现蒙版效果
2020/01/11 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
Django的session中对于用户验证的支持
2015/07/23 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Python读写文件基础知识点
2019/06/10 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
学生会竞选演讲稿
2014/04/24 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2014年司机工作总结
2014/11/21 职场文书
2014年残联工作总结
2014/11/21 职场文书
雨花台导游词
2015/02/06 职场文书
英语教师求职信范文
2015/03/20 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js