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 相关文章推荐
Knockoutjs快速入门(经典)
Dec 24 Javascript
JS中setTimeout()的用法详解
Apr 14 Javascript
javascript中字符串的定义示例代码
Dec 19 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
Dec 18 Javascript
js实现文字跟随鼠标移动而移动的方法
Feb 28 Javascript
javascript每日必学之循环
Feb 19 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
Mar 13 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
详解Node.js实现301、302重定向服务
Apr 07 Javascript
解决ie img标签内存泄漏的问题
Oct 13 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
Mar 19 Javascript
vue回到顶部监听滚动事件详解
Aug 02 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
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
javascript 中关于array的常用方法详解
2017/05/05 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
React 高阶组件入门介绍
2018/01/11 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
python3.3实现乘法表示例
2014/02/07 Python
python如何通过protobuf实现rpc
2016/03/06 Python
Python在线运行代码助手
2016/07/15 Python
Python实现求两个csv文件交集的方法
2017/09/06 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
《藤野先生》教学反思
2014/02/19 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
Python学习之包与模块详解
2022/03/19 Python
JavaScript获取URL参数的方法分享
2022/04/07 Javascript