一,JS的Dom解析
JS的三大对象:
- 内建对象: 内建对象:ECMA标准提供的内置对象(如:基本类型和类型转化……等都属于)
- 宿主对象:DOM(文档对象模型),BOM(浏览器对象模型)
- 自定义对象
JS的DOM和Java中的DOM其实差不多:
异:
- JS的DOM解析HTML文档,Java的DOM解析XML文档
- Java的DOM将xml看做一个整体,保存到内存中做解析,JS中的DOM在网页中直接动态解析
- JS的DOM做为为HTML解析的网页技术,有事件的绑定
同:
- JS的DOM和Java的DOM,都是文档对象模型,将文档转换成对象进行操作
- 根本的作用都是对文档进行增删改查操作
- 节点对象的属性和作用,是差不多的
DOM将整个文档看做一个树结构,标签的嵌套就是树分支中的再分支
JS中DOM的根对象是doucment,它是文档的根节点对象,通过doucment的属性和方法来操作整个文档树
插段:windown对象的作用
- windown是js的全局对象,这就意味着再js中可以不加对象名直接调用
- windown是BOM的直接对象,通过window的属性方法直接操作浏览器窗口
- windown对象也不仅仅是BOM,DOM的操作也需要window对象,document对象也是window的属性
一,Dom的节点对象
文档通过Dom转换为树结构,而树结构由节点组成,通过对树的查询进而对文档标签进行操作
dom的节点分四类:
- 文档节点:整个文档被看作一个根节点
- 元素节点:一个标签就是一个元素节点
- 属性节点:标签内的属性就是一个属性节点
- 文本节点:标签体中的文本内容是一个文本节点
nodeName | nodeType | nodeValue | |
---|---|---|---|
文档节点 | #document | 9 | null |
元素节点 | 标签名 | 1 | null |
属性节点 | 属性名 | 2 | 属性值 |
文本节点 | #text | 3 | 文本内容 |
二,获取节点对象
元素的查询有几种方式:
- 通过文档对象document获取元素节点
- 通过元素节点对象获取后代,兄弟……等节点
- 通过元素节点获取属性节点
一,通过document文档对象获取元素节点
1, getElementById():通过id属性获取一个元素节点对象
2,getElementsByTagName():通过标签名获取一组元素节点对象,返回一个对象数组
3,getElementByName():通过name属性获取一组元素节点对象,返回一个对象数组
4,getElementByClassName():通过class属性获取一组元素节点对象,返回一个对象数组
例:图片的切换
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图片的切换</title> <script type="text/javascript"> window.onload=function(){ var arr=[ "C:\\Users\\wql\\Pictures\\记忆\\wql1.jpg", "C:\\Users\\wql\\Pictures\\记忆\\wql2.jpg", "C:\\Users\\wql\\Pictures\\记忆\\wql3.jpg", "C:\\Users\\wql\\Pictures\\记忆\\wql4.jpg", "C:\\Users\\wql\\Pictures\\记忆\\wql5.jpg" ] var index=0; var pw = document.getElementById("pp"); //通过id获取单个节点对象 var wqlbt = document.getElementById("bt1"); wqlbt.onclick = function(){ index--; var imgfq = document.images[0];//获取images标签节点数组 if(index<0){ index=arr.length-1; } pw.innerHTML="图片有"+arr.length+"张,当前图片为第"+(index+1)+"张"; imgfq.src=arr[index]; } var fqbt = document.getElementById("bt2"); fqbt.onclick = function(){ index++; if(index > arr.length-1){ index=0; } var imgfq1 = document.images[0]; pw.innerHTML="图片有"+arr.length+"张,当前图片为第"+(index+1)+"张"; imgfq1.src=arr[index]; } }; </script> <style type="text/css"> *{ padding: 0; margin: 0;; } #wqlfq{ width: 420px; height: 420x; margin:auto auto; padding: 10px; background-color: blueviolet; text-align: center; } </style> </head> <body> <div id="wqlfq" > <p id="pp"></p> <img src="C:\Users\wql\Pictures\记忆\wql1.jpg" width="400" height="400"/> <br/> <button id="bt1" >上一张</button> <button id="bt2">下一张</button> </div> </body> </html>
二,通过元素节点获取其关系节点
DOM树结构,可以通过节点之间的关系获取关系元素
1,元素对象. parentNode : 获取当前元素节点的父节点
2,元素对象. childNodes : 获取当前元素所有子元素节点的对象数组集合,返回对象数组
3,元素节点. firstChild : 获取当前节点的第一个子元素对象
3, 元素节点. lastChild : 获取当前节点的最后一个元素对象
4,元素节点. nextSibling : 获取下一个兄弟元素对象
5,元素节点. previousSibling : 获取上一个兄弟元素对象
三,直接通过基本或者层级选择器来获取元素
直接通过document调用,之前是通过具体的选择器方法来查找元素,例:getElementById(),只能传递id选择器
document有两种通用的选择器,可以使用所有选择器种类,
1,querySelector("选择器"):返回满足条件的第一个元素节点
2,querySelectorAll("选择器"):返回满足条件的所有元素节点
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109