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 相关文章推荐
js实现文字在按钮上滚动的方法
Aug 20 Javascript
JavaScript代码判断点击第几个按钮
Dec 13 Javascript
js+html5操作sqlite数据库的方法
Feb 02 Javascript
微信小程序图表插件(wx-charts)实例代码
Jan 17 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
javascript 初学教程及五子棋小程序的简单实现
Jul 04 Javascript
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
Vue父子组件双向绑定传值的实现方法
Jul 31 Javascript
jquery登录的异步验证操作示例
May 09 jQuery
vue2.0 实现富文本编辑器功能
May 26 Javascript
node 解析图片二维码的内容代码实例
Sep 11 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
配置最新的PHP加MYSQL服务器
2006/10/09 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
php 操作调试的方法
2012/07/12 PHP
Yii实现简单分页的方法
2016/04/29 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
JS高级运动实例分析
2016/12/20 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Python实现快速多线程ping的方法
2015/07/15 Python
pandas通过loc生成新的列方法
2018/11/28 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
python常量折叠基础知识点讲解
2021/02/28 Python
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
个人简历自我评价
2014/01/06 职场文书
民族团结先进个人材料
2014/02/05 职场文书
元旦晚会主持词
2014/03/24 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
音乐学专业求职信
2014/07/22 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang