DOM

61 阅读4分钟

1、DOM:Document Object Model:文档对象模型:专门用于操作HTML文档的,提供了一些方法

2、DOM树概念:*DOM将我们的HTML看做了是一个倒挂的树状结构,但是树根不是html标签,而是document对象

document对象:不需要我们程序员创建,由浏览器的js解释器自动创建,一个页面只有一个document

作用:可以通过树根去找到我们想要的任何一个DOM元素/节点/对象(属性和方法)

DOM会将页面上每个元素、属性、文本、注释都当做是一个DOM元素/节点/对象

3、查找元素:

1、通过ID找元素:

var elem=document.getElementById("id值");

特殊:

1、返回值:找到了返回当前找到的DOM元素,没找到返回是一个

2、找到了返回的也只是第一个id的元素

2、*通过标签名找元素:

var elems=document/已经找到了的父元素.getElementsByTagName("标签名");

特殊:

1、返回值:找到了返回一个类数组DOM集合,没找到返回的是一个空数组

2、JS只能直接操作DOM元素,不可以直接操作DOM集合,解决:要么使用下标拿到某一个元素,那么使用遍历拿到每一个的元素

3、不一定非要从document开始查找,如果从document去找,会找到的所有的元素,可以换成我们已经找到的某个元素

3、*通过class名找元素:

var elems=document/已经找到了的父元素.getElementsByClassName("class名");

特殊:

1、返回值:找到了返回一个类数组DOM集合,没找到返回的是一个空数组

2、JS只能直接操作DOM元素,不可以直接操作DOM集合,解决:要么使用下标拿到某一个元素,那么使用遍历拿到每一个的元素

3、不一定非要从document开始查找,如果从document去找,会找到的所有的元素,可以换成我们已经找到的某个元素

4、通过关系找元素:前提条件:必须先找到一个元素才可以调用关系网

父元素:elem.parentNode; - 单个元素

子元素:elem.children; - 集合

第一个子元素:elem.firstElementChild; - 单个元素

最后一个子元素:elem.lastElementChild; - 单个元素

前一个兄弟:elem.previousElementSibling; - 单个元素

后一个兄弟:elem.nextElementSibling; - 单个元素


操作元素:前提:找到元素才可以操作元素

1、内容:

*1、innerHTML - 获取和设置开始标签到结束标签之间的内容,支持识别标签的

获取:elem.innerHTML;

设置:elem.innerHTML="新内容";

2、innerText - 获取和设置开始标签到结束标签之间的文本,不支持识别标签的

获取:elem.innerText;

设置:elem.innerText="新文本";

以上两个API都是为双标签准备的,但是操作不了input

*3、value - 准备为获取input的value值准备的

获取:input.value;

设置:input.value="新内容";

2、*属性:

获取属性值:elem.getAttribute("属性名");

设置属性值:elem.setAttribute("属性名","属性值");

简化版:

获取属性值:elem.属性名;

设置属性值:elem.属性名="属性值";

缺陷:

1、class必写为className

2、不能操作自定义属性

3、样式:

使用样式的方式:

1、内联样式

2、内部样式表

3、外部样式表

二阶段我们就是要用js来操作【内联样式】:

1、不会牵一发动全身

2、优先级最高

获取:elem.style.css属性名;

设置:elem.style.css属性名="css属性值";

特殊:1、css属性名,有横线的地方,去掉横线,换为小驼峰命名法

border-radius -> borderRadius

2、获取时,只能获取内联样式 - 小缺点,我们可以忽略掉

总结:

一切的获取,往往都是用于判断操作

一切的设置,其实也就可以理解为是修改

4、绑定事件:

elem.on事件名=function(){

操作;

*****this关键字:这个

如果单个元素绑定事件,this->这个元素

如果多个元素绑定事件,this->当前触发事件的元素

}

5、计算字符串:呆老湿喜欢称呼为脱字符串的衣服

eval(str);

周末作业:

1、点击按钮,让页面上a标签内容和网址发生变化

2、开关门效果

3、表格隔行变色,奇数次奇数行变色,偶数次点击偶数行变色

4、下午:选项卡

5、下午:计算器

6、下午:购物车 - 封装为函数

7、学会写博客:自己整理这一周学习的内容,背着笔记去回忆,写完后,再打开笔记对比,看看差了什么