11.1-11.4-js-操作DOM、修改样式、事件

140 阅读3分钟

1.Dom简介---文档对象模型

1.1节点

image.png

1.2文档的加载---- onload可以解决获取不到页面节点的情况,script还是写在下面

浏览器在加载一个页面时,是按照自上向下的顺序加载的,读取到一行就运行一行,如果将scripr标签写到页面的上面,在代码执行时,页面还没有加载,所以将script标签写在下面

如果想要在页面上面写,可以通过onLoad事件实现(在整个页面加载完成之后再触发)

image.png

1.3Dom的查询

1.3.1获取元素节点---通过document节点获取

image.png

1.3.2获取元素节点的子节点---通过具体的元素节点获取

image.png 获取兄弟节点

image.png

1.3.3Dom查询其他方法---根据类名获取getElementsByClassName(IE8以下不兼容)&querrySelector(与querrySelectorAll的区别)

image.png 查找一个使用querrySelector,查找多个使用querySelectorAll() image.png

1.4Dom的增删改

Dom常用方法 image.png

1.5案例

1.5.1图片切换练习

1.5.2反选和全选练习

1.5.3dom的增删改练习

2.修改样式(了解)

2.1操作内联样式----style读取内联样式

通过js修改样式---通过style修改的样式是行内样式,具有较高的优先级,会立即显示(⚠️!important样式最高),无法读取样式表中的样式,只能读取到行内的样式 当涉及-时,需要将其改为驼峰命名法,将其第一个字母大写

image.png ⚠️-----读取就不➕等号

image.png 读取样式-----读取的是内联样式,无法读取样式表中的样式

image.png

案例:

image.png

2.2获取元素的样式---currentStyle:读取元素正在显示的样式(只有IE浏览器支持)

其他浏览器通过getComputedStyle修改样式

image.png

2.3getStyle()方法----需要对浏览器的版本进行判定---处理兼容性问题

image.png

3.事件

3.1事件对象

当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递响应函数

image.png image.png

3.2事件的冒泡-⚠️是相同事件触发

事件冒泡:所谓的冒泡指的是向上传导,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发

image.png 事件冒泡案例

image.png 大部分开发中冒泡都是有益的,但有时也需要阻止事件冒泡

image.png 阻止事件冒泡例子----写在函数中e.cancelBubble=true

image.png

3.3事件传播(了解即可)

image.png

3.4事件的委派---利用了冒泡

image.png

3.5事件绑定-绑定一个&绑定多个(注意考虑兼容性的问题)

绑定一个 使用.事件 = 函数的形式绑定响应函数,同时只能为一个元素的一个事件绑定一个响应函数,不能绑定多个,如果绑定了多个,则会覆盖掉前面的

绑定多个----会按照绑定的顺序去执行 需要注意兼容性---在IE8及以下的浏览器不支持 image.png 例子:

image.png 在IE8中使用attachEvent()----执行顺序是相反的(后绑定的先执行)---处理兼容性问题

image.png

两种事件的绑定this不同

image.png

3.6改变this的指向---bind

bind、apply、call三者的区别

3.6滚轮事件

3.7键盘事件---一般绑定的都是可以获得焦点的或者document

image.png 可以通过keyCode来设置

image.png

3.8拖拽