1. /*
  2. var oLi = document.createElement('li');
  3.  
  4. oUl.appendChild( oLi );
  5.  
  6. };
  7.  
  8. createElement('') : 创建一个dom元素
  9.  
  10. appendChild() : 往一个节点的现有子节点后面追加一个新的子节点。
  11.  
  12. 父级.appendChild( 子节点 );
  13.  
  14. insertBefore()
  15.  
  16. createElement('') : 创建一个dom元素
  17.  
  18. appendChild() : 往一个节点的现有子节点后面追加一个新的子节点。
  19.  
  20. 父级.appendChild( 子节点 );
  21.  
  22. insertBefore() : 往一个节点的指定现有子节点前面插入一个新的子节点。
  23.  
  24. 父级.insertBefore( 准备插入的子节点,插入到哪个子节点的前面 );
  25.  
  26. removeChild() : 从一个节点里面删除指定的子节点。
  27.  
  28. 父级.removeChild( 准备要删除的子节点 );
  29.  
  30. replaceChild() : 用一个节点替换掉另一个节点里面的指定子节点。
  31.  
  32. 被替换元素的父级.replaceChild( 用来替换的节点,被替换掉的子节点 );
  33.  
  34. 被替换的元素必须是真实存在的节点元素。
  35.  
  36. cloneNode() : 复制一个节点。
  37.  
  38. 被复制的节点.cloneNode( boolean );
  39. boolean : 指定是否复制所有子孙节点。
  40. true : 复制所有子孙节点。
  41. false : 只复制节点本身。
  42.  
  43. 温馨提醒:cloneNode() 只会复制dom结构,而不会复制事件或者通过js添加的属性等。
  44. appendChild() / insertBefore() / replaceChild() : 如果操作的对象是一个已经存在在页面中的元素,则是直接移动元素,而并非复制元素。
  45.  
  46. exp:
  47. var oDiv1 = document.getElementById('div1');
  48. var oDiv2 = document.getElementById('div2');
  49. var oBox = document.getElementById('box');
  50.  
  51. document.onclick = function(){
  52.  
  53. //oBox.appendChild( oDiv1 );
  54. // oBox.appendChild( oDiv1.cloneNode() );
  55. //oBox.insertBefore( oDiv1 , oDiv2 );
  56. oBox.replaceChild( oDiv1 , oDiv2 );
  57.  
  58. };
  59.  
  60. appendChild() / insertBefore() / replaceChild() : 如果操作的对象是一个已经存在在页面中的元素,则是直接移动元素,而并非复制元素。
  61.  
  62. -----------------------------------------------------
  63. class封装函数
  64. function hasClass( obj , sClass ){
  65.  
  66. var aClass = obj.className.split(' ');
  67.  
  68. if( !obj.className )return false;
  69.  
  70. for(var i=0; i<aClass.length; i++){
  71. if( aClass[i] == sClass )return true;
  72. }
  73.  
  74. return false;
  75.  
  76. }
  77.  
  78. function removeClass( obj , sClass ){
  79. var aClass = obj.className.split(' ');
  80.  
  81. if( !obj.className ) return;
  82.  
  83. for(var i=0; i<aClass.length; i++){
  84.  
  85. if( aClass[i] == sClass ){
  86.  
  87. aClass.splice( i , 1 );
  88. obj.className = aClass.join(' ');
  89. return;
  90.  
  91. }
  92.  
  93. }
  94.  
  95. }
  96.  
  97. function addClass( obj , sClass ){
  98.  
  99. var aClass = obj.className.split(' ');
  100.  
  101. if( !obj.className ){
  102. obj.className = sClass;
  103. return;
  104. }
  105.  
  106. for(var i=0; i<aClass.length; i++){
  107. if( aClass[i] == sClass ) return;
  108. }
  109.  
  110. obj.className += ' ' + sClass;
  111.  
  112. }
  113. //获取
  114.  
  115. function getByClass( sClass , parent ){
  116. var aEles = (parent||document).getElementsByTagName('*');
  117. var arr = [];
  118.  
  119. for(var i=0; i<aEles.length; i++){ //查看每一个元素是否满足要求
  120. var aClass = aEles[i].className.split(' ');
  121.  
  122. for(var j=0; j<aClass.length; j++){ //查看元素的每一个className
  123. if( aClass[j] == sClass ){
  124. arr.push( aEles[i] );
  125. break;
  126. }
  127. }
  128.  
  129. }
  130.  
  131. return arr;
  132.  
  133. }
  134.  
  135. */

dom兼容性问题3 元素操作的更多相关文章

  1. dom元素操作(动态事件绑定)

    遇到的问题:动态生成的内容,事件绑定会出错. 例子:http://snowinmay.net/jqm/dom-learn2.html 1.绑定事件对动态生成的新元素无效. 问题描述:bind事件绑定后 ...

  2. 深度解析JQuery Dom元素操作技巧

    深度解析JQuery Dom元素操作技巧 DOM是一种与浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准组件,这篇文章给大家介绍了JQuery dom元素操作方法,写的十分的全面细 ...

  3. 使用 Jquery-UI 实现一次拖拽多个选中的元素操作

    项目需要,实现一个拖放操作,要求每次可以拖拽选中的多个元素,释放到目标容器后可排序.考虑了一下,觉得jquery-ui比较合适,毕竟它提供了项目需要的交互性事件机制.拖拽.释放.排序.选择等效果.而在 ...

  4. JS-006-表格元素操作

    直接上菜咯... 以下为 HTML 表格源码: <html> <head> <meta http-equiv="Content-Type" conte ...

  5. selenium中元素操作之浏览器窗口滚动&网页日期控件操作(js操作)(五)

    js的滚动条scrollIntoView() Arguments[] - python与js之间的羁绊 1.移动到元素element对象的“底端”,与当前窗口的“底部”对齐: driver.execu ...

  6. Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」

    1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...

  7. HTML DOM 定义了访问和操作 HTML 文档标准

    HTML DOM 定义了访问和操作 HTML 文档的标准. 您应该具备的基础知识 在您继续学习之前,您需要对以下内容拥有基本的了解: HTML CSS JavaScript 如果您需要首先学习这些项目 ...

  8. .NET LINQ 元素操作

    元素操作      元素操作从一个序列返回单个特定元素. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 ElementAt 返回集合中指定索引处的元素. ...

  9. selenium元素操作

    1.文本框(text field or textarea) element.sendKeys("test");//在输入框中输入内容: element.clear(); //将输入 ...

随机推荐

  1. Storm的组件

    摘自网上 当时写的很好,很详细的介绍了各个组件直接的关系 Storm集群和Hadoop集群表面上看很类似.但是Hadoop上运行的是MapReduce jobs,而在Storm上运行的是拓扑(topo ...

  2. 页面的日志服务 web页面渲染 服务 ; 服务耦合带来的问题

    情景: 虽然对web服务做了3节点的负载均衡,但是由于埋点数据的落盘的代码也在相同服务器上,导致当flume处理日志的吞吐量达到瓶颈时,3节点的请求积压,挤占服务器资源,导致接口数据处理迟缓,页面加载 ...

  3. IO流入门-第六章-FileReader_FileWriter复制

    利用FileReader和FileWriter进行复制粘贴 /* 文件复制粘贴 只能复制纯文本文件 2017/4/13 */ import java.io.*; public class FileRe ...

  4. SSH 框架整合总结

    1. 搭建Struts2 环境 创建 struts2 的配置文件: struts.xml; 在 web.xml 中配置 struts2 的核心过滤器; // struts.xml <?xml v ...

  5. java 集合类复习(未完结)

    JAVA常用数据结构及原理分析(面试总结) https://blog.csdn.net/qq_29631809/article/details/72599708 java 中几种常用数据结构   ht ...

  6. Linux使用SecureCRT上传下载

    操作远程 Linux 系统,很多时候选用 SecureCRT 软件,在 SecureCRT 环境下,使用 lrzsz 工具可以很方便的完成文件的上传下载. 这里使用的 Ubuntu Linux 安装: ...

  7. python线程池/进程池创建

    进程池 import time from concurrent.futures import ProcessPoolExecutor def task(arg): time.sleep(2) prin ...

  8. bzoj1101【POI007】Zap

    1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1950  Solved: 735 [id=1101" ...

  9. Notepad++ 更换主题

    到Textmate Theme Directory下载主题: 用文本编辑器把它打开,复制所有代码,贴到theme converter page里,然后“Download”: 保存: 在Notepad+ ...

  10. NHibernate 配置增加代码感知

    Adding the Schema Include the schema in your Project, Solution, or Visual Studios XML Schemas folder ...