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页面跳转常用的几种方式
Nov 25 Javascript
jQuery动态地获取系统时间实现代码
May 24 Javascript
浅析用prototype定义自己的方法
Nov 14 Javascript
jQuery中children()方法用法实例
Jan 07 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
Jul 22 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
Aug 28 Javascript
BOM之navigator对象和用户代理检测
Feb 10 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
Jul 24 Javascript
select获取下拉框的值 下拉框默认选中方法
Feb 28 Javascript
Vue项目中如何引入icon图标
Mar 28 Javascript
JS前后端实现身份证号验证代码解析
Jul 23 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缓存技术的多种方法小结
2012/08/14 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
2009/08/04 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
JS的get和set使用示例
2014/02/20 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
Python中文件的读取和写入操作
2018/04/27 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
八项规定整改方案
2014/02/21 职场文书
挂职个人工作总结
2015/03/05 职场文书