红宝书阅读笔记!第八天_DOM(2)

294 阅读2分钟

DOM编程

很多时候,操作DOM是很直观的。通过HTML代码能实现的,也一样能通过Javascript实现。

1.动态脚本

<script>标签用于向网页插入HTML代码,可以是src属性包含的外部原件,也可以是作为该元素内容的源代码。动态脚本就是在页面初始加载时不存在,之后又通过DOM包含的脚本。和对应的HTML元素一样,有两种方式通过<script>动态为网页添加脚本:引入外部文件和直接插入源代码。

比如,举个栗子👇

<script src='foo.js'></script>

let script = document.creatElement('Element');
script.src = url;
document.body.appendChild(script);    

注意,在上面最后一行把<script>元素添加到页面之前,是不会开始下载外部文件的。可以把上述方法抽象成一个函数,比如👇

function loadScript(url){
	let script = document.creatElement('script');
    script.src = url;
    document.body.appendChild(script);
}

2.动态样式

CSS样式在HTML页面中可以通过两个元素加载。<link>元素用于包含CSS外部文件,而<style>元素用于添加嵌入样式,与动态脚本类似,动态样式也是在页面初始加载时并不存在,而是在之后才添加到页面中的。

<link rel = 'stylesheet' type='text/css' href='styles.css' >

let link = document.creatElement('link')
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'styles.css';
let head = document.getElementByTagName('head')[0];
head.appendChild(link);

上述过程可以像动态脚本一样抽象成一个函数。

3.操作表格

oh看起来太麻烦了不想看。

4.使用NodeList

NodeList、NameNodeMap、HTMLCollection是理解DOM编程的关键,这3个集合类型都是实时的,文档的结构变化会实时的在他们的身上反映出来,因此他们的值会代表最新状态。

MutationObserver接口

不久前添加到DOM规范中的MutationObserver接口,可以在DOM被修改时异步执行回调。使用MutationObserver可以观察整个文档、DOM树的一部分,或者某个元素。此外还可以观察元素属性,子节点、文本,或者前三者任意组合的变化。

基本用法

MutationObserver的实例要通过调用MutationObserver构造函数并传入一个回调函数来创建:
let observer = new MutationObserver(() => console.log('DOMwas mutated!'));
1.observe()方法

新创建的MutationObserver实例不会关联任何DOM。要把这个observer与DOM关联起来,需要使用observe()方法。这个方法接受两个必须的参数:要观察的DOM节点和一个MutationObserverInit对象。

MutationObserverInit对象用于控制观察哪些方面的变化,是一个键/值对形式匹配选项的字典。

文章内容参考:JavaScript高级程序设计(第四版)

标题样式来自:juejin.cn/post/684490…

哪里写错了就联系我🐧:54269504