Dom 获取、Dom动态创建节点
一、Dom获取
1、全称:Document Object Model 文档对象模型
2、我们常用的节点类型
元素(标签)节点、文本节点、属性节点(也就是标签里的属性)、
3、document有个属性叫nodeType返回的是数字
1:代表元素节点
2:代表属性节点
3:代表文本节点
4、节点的获取
元素节点的获取方法
Document.getElementById()
Document.getElementsByClassName()
Document.getElementsByTagName()
Document.querySelector()
Document.querySelectorAll()
属性节点的获取方法
元素 . getAttribute("属性名") 获取属性值的方法
元素 . attribuites 获取元素身上所有属性构成的集合(数组)
元素 . attribute [ 索引 ] . value 获取元素里面的值
元素 . setAttribute("属性名","属性值") 给元素设置属性和属性值
元素 . remove("属性") 删除元素
文本节点没有获取的方法,没有意义
5、获取元素的子节点
元素 . childNodes 这个属性有兼容性,标准浏览器回获取文本节点,而低版本的浏览器不会,所以建议children属性
获取单个子节点:具有兼容问题
获取第一个子节点:
标准下:元素 . firstElementchild
非标准下:元素 . firstchild
获取最后一个子节点:
标准下:元素 .lastElementchild
非标准下:元素 . lastchild
获取上一个兄弟节点:
标准下:元素 . previousElementsibling
非标准下:元素 . previoussibling
获取上一个兄弟节点:
标准下:元素 . nextElementchild
非标准下:元素 . nextchild
解决兼容性问题:
拿获取第一个子节点为列:
var list=document . getElementById("list")
var ss=list . firstElementchild || list . firstchild
6、获取父节点
元素 . parentNode 没有兼容性
二、Dom 动态创建节点
1、生成节点的方法:
document . createElement("div")
2、插入节点的方法:
父节点 . appendChild("新节点")
3、在指定的位置插入节点
父节点 . inserBefore(新节点,谁的前面) 将元素插入指定节点的前面
4、删除节点
父节点 . removechild()
三、拓展
字符串中的拼接和Dom创建都是渲染的方试
字符串:
优点:简单,可以处理数据,层次感比较强
缺点:字符串拼接会影响到原来子元素的事件
Dom创建:
优点:是一个独立的个体,不会影响到原来的元素
缺点:处理数据量过大会比较麻烦,会造成Dom回流
Dom回流:
页面渲染时,我们对html结构简单的增删查改时,浏览器会对所有的dom重新排序,这就是Dom回流,严重影响浏览器的性能
提升页面性能优化:
1、多采用雪碧图
2、阻止超链接的默认行为
3、减少DOM回流
4、减少向服务器请求次数
Dom 获取、Dom动态创建节点的更多相关文章
- 11-15 dom 动态创建节点
1.生成节点的方法 document.createElement(“div”) 2.插入节点的方法 父元素.appendChild(新节点) 在父节点中的子节点后面插入新的节点 3.在指定的位置 ...
- delphi dom动态创建节点方法
在一次测试demo中 需要动态的创建xml节点并添加,实现方法如下: var NewItem:IXMLDOMElement; NewItem:=ConfigDoc.createElement('ite ...
- HTML中javascript使用dom获取dom节点范例
<!-- HTML结构 --> <div id="test-div"> <div class="c-red"> <p ...
- js···DOM2动态创建节点
1.生成节点的方法 document.createElement(“div”) 2.插入节点的方法 父元素.appendChild(新节点) 在父节点中的子节点后面插入新的节点 3.在指定的位置 ...
- jquery动态创建节点
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- DOM创建节点
1.DOM--document object model 常用的节点类型: 元素节点:(标签) 属性节点:(标签里的属性) 文本节点:(文本节点) 2,document有个属性叫nodetype,返回 ...
- 关于document的节点;用Dom2创建节点;
一.关于节点 1.节点树状图 document>documentElement>body>tagName 2.节点类型 元素节点(标签).文本节点(文本).属性节点(标签属性) 3. ...
- FineUIMvc随笔 - 动态创建表格列
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 用户希望实现动态创建表格列,在 WebForms 中,我们通过在 Page_Init 中创建列来实现: 但是在 MVC ...
- FineUIMvc随笔(1)动态创建表格列
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. <FineUIMvc随笔>目录 FineUIMvc随笔(1)动态创建表格列 FineUIMvc随笔(2)怎样在控件中 ...
随机推荐
- poj 2531 Network Saboteur 解题报告
题目链接:http://poj.org/problem?id=2531 题目意思:将 n 个点分成两个部分A和B(也就是两个子集啦), 使得子集和最大(一定很难理解吧,呵呵).举个例子吧,对于样例,最 ...
- C#方法参数总结
C#中方法的参数的四种类型 C#中方法的参数有四种类型: 1. 值参数类型 (不加任何修饰符,是默认的类型) 2. 引用型参数 (以ref 修饰符声明) 3. ...
- LA-5052 (暴力)
题意: 给[1,n]的两个排列,统计有多少个二元组(a,b)满足a是A的连续子序列,b是B的连续子序列,a,b中包含的数相同; 思路: 由于是连续的序列,且长度相同,可以枚举一个串的子串,找出这个子串 ...
- Nth prime & numbers of primes (模板)
都是取的模板,这几天做的素数题挺多的,所以整理了放在这里,感觉有一天回用到的! SPOJ:Nth Prime: 求第N个素数,N<1e9. #include<bits/stdc++ ...
- [Selenium] 配置 Internet Explorer Driver 的注意事项
1)请确保 IEDriverServer 的可执行文件在系统环境变量PATH 中 2)在IE7 和以上版本的 Internet Explorer 上,必须确保保护模式的正确配置.设置方式为 Tools ...
- bzoj1925地精部落——数学
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1925 真是精妙的递推式...好难想到啊: 详见这位的博客:https://www.cnblo ...
- Keepalived + HAProxy 搭建【第二篇】Keepalived 的安装与配置
第一步:准备 1. 简介 本文搭建的是利用 Keepalived 实现 HAProxy 的热备方案,即两台主机上的 HAProxy 实例同时运行,其中全总较高的实例为 MASTER,MASTER出现异 ...
- 图的理解:深度优先和广度优先遍历及其 Java 实现
遍历 图的遍历,所谓遍历,即是对结点的访问.一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略: 深度优先遍历 广度优先遍历 深度优先 深度优先遍历,从初始访问结点出发,我们知道 ...
- View Programming Guide for iOS ---- iOS 视图编程指南(三)---Windows
Windows Every iOS application needs at least one window—an instance of the UIWindow class—and some m ...
- 腾讯视频API --关闭广告推荐
官方文档:http://v.qq.com/open/doc/tvpapi2.0.pdf 使用: <script src="http://imgcache.qq.com/tencentv ...