一、关于节点

1、节点树状图

document>documentElement>body>tagName

2、节点类型

元素节点(标签)、文本节点(文本)、属性节点(标签属性)

3、document的属性nodeType的返回值是数字:

1:元素节点;2、属性节点;3、文本节点

4、获取节点的方法:

document.getElementById()

document.getElementsByClassName()

document.getElementsByTagName()

document.querySelector()

document.querySelectorAll()

5、属性节点的获取:

元素.attributes获取的是元素身上的所有属性构成的集合(数组),得到的数组里的值的某元素是  元素.attributes[1].value

元素.removeAttribute(“属性”)删除属性

元素.getAttributes(“属性名”)  获取属性名的方法

元素.setAttribute(“属性名”,“属性值”)  给元素设置属性和属性值

6、获取元素的子节点

元素.childNode 这个属性有兼容性

标准浏览器会获取到文本节点,低版本的浏览器不会获取到文本节点,所以使用children获取子节点

(1)获取第一个子节点

标准:元素.firstElementChild

非标准:元素.firstChild

兼容性写法:var list=documentById("list")

var first=list.firstElementChild||list.firstChild

console.log(first)

(2)获取最后一个子节点

标准:元素.lastElementChild

非标准:元素.lastChild

兼容性写法:var list=documentById("list")

var last=list.lasttElementChild||last.firstChild

console.log(last)

(3)获取上一个兄弟节点

标准:元素.previousElementSibling

非标准:元素.previousSibling

(4)获取下一个兄弟节点

标准:元素.nextElementSibling

非标准:元素.nextSibling

7、获取父节点

元素.parentNode  没有兼容性

8、区分offsetparent和parentNode的区别

offsetparent的父级,谁有position:relative;谁就是他的父级

二、DOM2动态创建节点

1、生成节点的方法

document.creatElement("div")

2、插入节点的方法

父元素.appendChild(新节点)

在父节点的后面插入新节点

3、在指定的位置插入新的节点

父元素.insertBefore(新节点,谁前面插入)

新节点插入到指定节点前面

插入新节点的兼容性(浏览器的标准与非标准)

if(list.children[0]){

  list.insertBefore(li,list.children[0])

}else{

  list.appendChild(li)

}这种写法,是因为低版本浏览器不会吧文本节点当做子节点,所以insertBefor不起作用,要用appendChild追加一个元素

4、删除元素节点

父元素.removeChild()

补充知识点

1、关于超链接 a

<a href="javascript:;">取消刷新页面的功能

<a href="#s"> 锚点跳转,跳转到某一个id叫做S的位置上

<a href="">点击会刷新页面,会向服务器发送一次请求

2、字符串拼接和DOM创建都是渲染得方式

字符串拼接:

优点:简单,层次感强,可以处理大量数据

缺点:字符串拼接会影响到原有子元素的事件

DOM创建:

优点:是一个独立的个体,不会影响到原有元素

缺点:处理数据过量会比较麻烦,会造成dom回流

3、DOM回流

页面渲染的时候,我们队html结构的增删查改时,浏览器会对所有的dom进行重新排列,这就是DOM回流,严重影响了浏览器的性能

关于document的节点;用Dom2创建节点;的更多相关文章

  1. JQuery_DOM 节点操作之创建节点、插入节点

    一.创建节点 为了使页面更加智能化,有时我们想动态的在html 结构页面添加一个元素标签,那么在插入之前首先要做的动作就是:创建节点 <script type="text/javasc ...

  2. js···DOM2动态创建节点

    1.生成节点的方法  document.createElement(“div”) 2.插入节点的方法   父元素.appendChild(新节点) 在父节点中的子节点后面插入新的节点 3.在指定的位置 ...

  3. js创建节点及其属性

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  4. Javascript 笔记与总结(2-10)删除节点,创建节点

    [删除节点] 步骤: ① 找到对象 ② 找到他的父对象 parentObj ③ parentObj.removeChild(子对象); [例] <!DOCTYPE html> <ht ...

  5. js添加创建节点和合并节点

    var _div = document.createElement("div"), //创建节点 txt1 = document.createTextNode("123& ...

  6. 1.javascript节点的操作 创建、添加、移除、移动、复制、插入(修改)

    (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节 ...

  7. javascript 创建节点和新增节点

    createElement(tabName) 创建一个为tagName的新元素节点 ANode.appendChild(BNode)把B节点追加至A节点的末尾 insertBefore(ANode,B ...

  8. 11-15 dom 动态创建节点

    1.生成节点的方法  document.createElement(“div”) 2.插入节点的方法   父元素.appendChild(新节点) 在父节点中的子节点后面插入新的节点 3.在指定的位置 ...

  9. javascript创建节点的事件绑定

    javascript创建节点的事件绑定 timeupdate事件是<video>中用来返回视频播放进度的事件,绑定在<video>标签返回视频播放位置(每秒计). 现video ...

随机推荐

  1. C++中文件读写的操作

    在C++中读读写文件一般指的就是磁盘中的文本文件和二进制文件: 文本文件:以字符序列组成的文件 二进制文件:由二进制组成的文件 读写文件采用ofstream和ifstream文件流,两者可用头文件&l ...

  2. DNS协议工作过程;DNS的安全隐患

    DNS协议工作过程   下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...

  3. js 高效拼接字符串

    <script>//如果我们大量使用+=进行字符串拼接的话,将会使界面失去响应(卡死状态) //高效拼接字符串 var StringBuilder=function() { this.da ...

  4. easyui-datebox 只能获取当前日期以前的日期

    <td> <input id="happenTimes" name="happenTimes" class="easyui-date ...

  5. ArcGIS案例学习笔记3_1_地理配准案例_目视找点

    ArcGIS案例学习笔记3_1_地理配准案例_目视找点 计划时间:第3天上午 方法:地理配准/添加链接点/左键/右键/输入坐标 数据:江苏省.zip 矢量:省界,市界,GPS WGS84 地理坐标系 ...

  6. C++ 关于 CMFCPropertyGridCtrl 的使用方法 之二 (原创)

    接上一节所讲,这一节咱们重点讲一下CMFCPropertyGridCtrl 所支持的数据表格的建立过程 在上一节中,咱们已经了解到了 CMFCPropertyGridCtrl  是要用到实例函数:Ad ...

  7. js判断json对象中是否含有某个属性

    obj.hasOwnProperty("key"); 原地址:https://blog.csdn.net/feicongcong/article/details/53463872

  8. ROC,AUC,Precision,Recall,F1的介绍与计算(转)

    1. 基本概念 1.1 ROC与AUC ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operatin ...

  9. 历届试题 大臣的旅费-(树的直径+dfs)

    问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...

  10. 网络传输中利用fastjson将复杂嵌套数据类型Json格式转换(GeoJsonPolygon)

    如果一个对象太复杂了,那么在网络传输键的JSON格式数据转换容易出问题. 比如下面一个类Area.java import lombok.AllArgsConstructor; import lombo ...