JavaScript笔记:DOM

DOM ( Document Object Model ):专门操作HTML内容的API
DOM是JavaScript的三个重要组成(ES(核心语法) DOM BOM)之一

核心DOM
能够操作所有结构化文档 (HTML,XML)
特点:万能的但是复杂而且繁琐

HTML DOM
专门操作HTML内容的API 常用的API进行简化
特点:简单但是并非是万能的

节点

     什么是节点呢?

     根据DOM,XML文档中的每一个成分都是一个节点

     整个文档是一个文档节点 document

     标签是一个元素节点      document.getElementsByTagName(“body”)  这就是一个body节点

元素中的文本就是一个文本节点

每一个属性是一个属性节点

注释是一个注释节点

点的获取

     知道了什么是节点,那么我们要用节点来进行相关操作,比如找到一个<h1>标签我们要给他增加属性,属性值,内容等,那么我们首先需要先找到这一个节点。

     同一个html页面内一个标签,属性,选择器可能存在多个,所以通过这些方式查找的内容通过一个类数组的方式放回,或者讲,只要有可能返回的是多个内容的可能,那么返回都是一个类数组来存这些内容,那么想要获得单个内容还得加上下标。

1、 通过标签名称来找节点。

var arr = document.getElementByTagName(“标签名”)[*];

2、 通过选择器获得节点

单个:var n = document.querySelector(“table>tbody tr:first-child>td:first-child”)

多个:var arr = document.querySelectorAll(“var n = document.querySelector(“table>tbody tr:first-child>td”)

”);

3、 通过id来获得节点

var abc = document.getElementById(“id名”);

4、 通过类名来查找节点

var arr = document.getElementsByClassName(“类名”);

5、 通过name属性值来查找,一般不使用

var arr = document.getElementByName(“name的属性值”);

DOM Tree(节点树)
网页中一切在内存中都是以树形结构存储的
树形结构是存储上下级包含关系最直观的结构
HTML中的每一个元素(元素、属性、文本)都是一个节点对象(Node),其中document对象是整棵树的根节点
————————————————

节点对象(Node)的三大属性

1、nodeType:专门区分节点的类型
document ==>> 9
element ==>> 1
attribute ==>> 2
text ==>> 3

2、nodeName:区分元素的名称
document ==>> #document
element ==>> 全大写的标签名
attribute ==>> 属性名
text ==>> #text

3、nodeValue:节点值
document ==>> null
element ==>> null
attribute ==>> 属性值
text ==>> 文本的内容

DOM操作:查、增、删、改
可以直接获得的三个元素
document.documentElement ==>>
document.head ==>>
document.body ==>>
1
2
3
节点树:包含HTML中的每一个节点对象
1、父子关系
node.parentNode //获得node的父节点
node.childNodes //获得node的所有子节点
node.firstChild //获得node下的第一个子节点
node.lastChild //后的node下最后一个子节点

2、兄弟关系
node.preivousSibling //获得当前节点的前一个兄弟节点
node.nextSibling //获得当前节点的下一个兄弟节点
//注意:网页中的一切都是节点,包括换行和空字符

用元素树:仅包含元素节点的树结构,节点树的子集
1、父子关系
elem.parentElement //获得一个父元素对象
elem.childen //获得子元素对象集合
elem.firstElementChild //获得第一个子元素对象
elem.lastElementChild //获得最后一个子元素

2、兄弟关系
elem.preivousElementSibling //获得当前节点的前一个兄弟元素
elem.nextElementSibling //获得当前节点的下一个兄弟元素

HTML查找
在整个页面或者父元素下,查找属性或标签符合条件的元素对象

id
只能用document调用 仅返回一个元素

var div = document.getElementById(“box”);
1
tagName
查找指定父元素下的指定标签元素,任何父元素都可以调用
返回值放在集合中,没有找到符合要求的子节点,返回一个空数组
查找不仅只查直接子节点,而且查找所有子代节点

var divs = document.getElementsByTagName(“div”);
var aLinks = div.getElementsByTagName(“a”);

name
查找表单,只能用document调用
返回一个动态数组

var form1 = document.getElementById(“form1”);
var chks = document.getElementsByName(“sex”);

class属性
查找的子代只要标签中class属性值符合要求的就被选中

var lis = nav.getElementsByClassName(“active”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值