Js dom 学习
节点类型
文档节点:
一棵DOM树的顶端是文档节点,它呈现为整个页面(相当于document对象),当需要访问任何元素、属性或文本节点时,都需要通过文档节点来进行导航。(document.)
元素节点
HTML元素描述了HTML页面的结构,需要访问DOM树时,需要从查找元素开始。一旦找到所需的元素,然后就可以根据需要来访问它的文本和属性节点。所以需要先学习访问元素节点的方法,然后再学习如何访问和修改文本及属性值。
属性节点
HTML元素的开始标签中可以包含若干属性,这些属性在DOM树中形成属性节点。
文本节点
当访问这些元素节点时,可以访问元素内部的文本,这些文本保存在其文本节点中。文本节点没有子节点。如果一个元素包含文本和其他子元素,这些子元素并非文本节点的子节点,而是整个容器元素的子节点<p>name<em>fresh</em>figs</p>,父节点为p,子节点为name,<em>fresh</em>,figs。
DOM操作
1访问元素
1.1选择单个元素
getElementById()返回对拥有指定 id 的第一个对象的引用。
querySelector() 使用css选择器,返回第一个匹配的元素。querySelector("li#id1");查询li的id=‘id1’的元素。
1.2选择多个元素
getElementsByClassName(); 选择所有在class属性上使用了特定值的元素
getElementsByTagName(); 选择所有使用了指定标记的元素
querySelectorAll() 使用Css选择器来选择所有匹配的元素、
childNodes 孩子节点数组
1.3在元素节点之间遍历
parentNode 返回当前元素的父节点
previousSibling 返回当前元素的前一个兄弟节点
nextSibling 返回当前元素的后一个节点
firstChild 返回当前元素的第一个子节点
lastChild 返回当前袁术的最后一个子节点
在绝大数浏览器,除了IE,都会将元素之间的空白(比如空格或回车)当做文本节点来处理,所以上面的属性(除了parentNode属性)在不同的浏览器中可能会返回不同的元素。所以应该避免使用这些DOM属性,解决这个问题的一个最受欢迎的方法是使用jquery这样的JavaScript库。
2.操纵这些元素
nodeType 元素节点类型
2.1 访问/更新文本节点
nodeValue
2.2操作HTML内容
innerHTML 访问/更新子元素和文本内容。
textContent 访问元素的文本内容 <p id="p1">fresh <em>figs</em></p> document.getElementById("p1").textContent 结果为 fresh figs
innertText 访问元素的文本内容 最好不要使用,1.firefox不支持,2.遵从css,css规则隐藏了的元素的文本内容获取不到。3、因为innerText考虑到布局规则来判断元素的可见性,它在获取文本内容时的速度要比textContent更慢。
createElement()创建元素节点
createTextNode()创建文本节点
appendChild() 向元素添加新的子节点,作为最后一个子节点。
removeChild() 移除节点
insertBefore 方法在您指定的已有子节点之前插入新的子节点 parentNode.insertBefore(newItem,existingItem);
2.3访问或更新属性值
className/id 可以使用它们来获取或更新class和id属性
hasAttribute()是否存在某属性
setAttrubute ()设置元素节点属性
getAttribute() 获取元素节点属性
removeAttribute()删除节点
Js dom 学习的更多相关文章
- JS DOM学习笔记
1.window对象代表当前浏览器窗口 2.使用window对象的属性.方法的时候可以省略window.例如:window.alert("hello")一般写成alert(&quo ...
- js dom学习
创建dom元素 var oLi = document.creteElement('li'); //创建livar aLi = oUl.getElementsByTagName('li');oLi.in ...
- js再学习笔记
#js再学习笔记 ##基本 1.js严格区分大小写 2.js末尾的分号可加,也可不加 3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...
- Ext JS 6学习文档–第1章–ExtJS入门指南
Ext JS 入门指南 前言 本来我是打算自己写一个系列的 ExtJS 6 学习笔记的,因为 ExtJS 6 目前的中文学习资料还很少.google 搜索资料时找到了一本国外牛人写的关于 ExtJS ...
- JS Dom节点操作demo!
通过黑马课程的学习,在这里分享一个js Dom中节点操作的小练习 需求:使用js创建一个4*3的表格table. onload = function(){ function c(tagName){ r ...
- vue.js的学习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Ext JS 6学习文档-第8章-主题和响应式设计
Ext JS 6学习文档-第8章-主题和响应式设计 主题和响应式设计 本章重点在 ExtJS 应用的主题和响应式设计.主要有以下几点内容: SASS 介绍和入门 主题 响应式设计 SASS 介绍和入门 ...
- Ext JS 6学习文档-第6章-高级组件
Ext JS 6学习文档-第6章-高级组件 高级组件 本章涵盖了高级组件,比如 tree 和 data view.它将为读者呈现一个示例项目为 图片浏览器,它使用 tree 和 data view 组 ...
- JS继续学习记录(一)
JS继续学习记录(一) 总感觉自己的js code写的还算可以,但是又深知好像只知道一些皮毛,所以打算仔细记录一下js晋级学习过程,日日往复 先记录一下自己目前对js的了解吧(20180828) js ...
随机推荐
- 防抖&节流
使用的原因 在前端开发当中有一部分的用户行为会频繁操作触发事件执行,而对于DOM操作,资源加载等耗费性能的处理,很可能导致页面卡顿,甚至浏览器崩溃,函数节流和防抖就是解决类似需求应运而生的 节流 预定 ...
- 继续死磕python
一.数据运算 算术运算 比较运算 赋值运算 逻辑运算 成员运算 身份运算 位运算 其中左右移运算是逻辑左右移即缺失位补0,而算数右移缺失补符号位(注意逻辑运算都是补码运算即都取补码再运算,然后结果也是 ...
- 05-转置-置换-向量空间R
一.置换矩阵 一个矩阵的行或者列交换,可以借助另外一个矩阵相乘来实现 首先是行交换: $\underbrace{\left[\begin{array}{ccc}{1} & {1} & ...
- odoo ERP 系统安装与使用
https://hub.docker.com/_/odoo/ #!/bin/bash sudo docker pull postgres:10sudo docker pull odoo:11.0 su ...
- 下载xlsx文件打开一直提示文件已损坏
这是office受保护视图导致的原因所造成的,按照以下操作,问题就不是问题了 解决办法如下: 1.在打开excel2018数据表格时,出现提示“文件已损坏,无法打开”,点击确定按钮 2.进入空白程序界 ...
- 2019长安大学ACM校赛网络同步赛C LaTale (树上DP)
链接:https://ac.nowcoder.com/acm/contest/897/C来源:牛客网 LaTale 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语 ...
- Centos7.5 ZABBIX4.0.3版本的编译安装
Zabbix监控的搭建理论 1. Zabbix Server会去采集监控数据,采集的监控数据会写入到SQL数据库 2. Zabbix的WEB后端采用php语言开发,所有配置信息.用 ...
- bzoj3510 首都 LCT 维护子树信息+树的重心
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3510 题解 首先每一个连通块的首都根据定义,显然就是直径. 然后考虑直径的几个性质: 定义:删 ...
- day4 切片,数据类型
day5: 序列,可以使用切片 序列类型:字符串,列表,元祖 特点:可以通过坐标来取值,坐标从0开始 >>> s = "agfdagsgsdgsa" >&g ...
- hdu_1231(最大连续子序列)
http://acm.hdu.edu.cn/showproblem.php?pid=1231 最长公共子序列: 方法1:暴力枚举所有区间的连续和,维护最大和 复杂度O(n^3)-->因为求区间和 ...