js|DOM和BOM

106 阅读1分钟

一、DOM

1、定义

DOM是文档对象模型,是将文档作为一个对象,这个对象主要定义了处理网页内容的方法和接口

2、核心

DOM的核心是Document对象

二、BOM

1、定义

BOM是浏览器对象模型,是将浏览器当做一个对象,这个对象主要定义了和浏览器进行交互的方法和对象

2、核心

BOM和核心是Window对象,Window具有双重身份,就是通过js访问浏览器的一个接口,也是一个全局对象

3、子对象

有 location 对象、navigator 对象、screen 对象等子对象

并且Document对象是Window对象的子对象

三、DOM相关的操作

一、获取DOM节点总结

getElementById()
getElementsByClassName()
getElementsByTagName()
querySelectorAll()
querySelector()

1、id

// 按照 id 查询
var imooc = document.getElementById('imooc') // 查询到 id 为 imooc 的元素

2、class

// 按照类名查询
var moocList = document.getElementsByClassName('mooc') // 查询到类名为 mooc 的集合

3、tags

// 按照标签名查询
var pList = document.getElementsByTagName('p')  // 查询到标签为 p 的集合

4、所有nodelist

// 按照 css 选择器查询
var pList = document.querySelectorAll('.mooc') // 查询到类名为 mooc 的集合

5、一个nodelist

// 按照 css 选择器查询
var pList = document.querySelector('.mooc') // 查询到一个类名为 mooc 的集合

二、代码展示

1、创建节点

<body>
    <div id="container">
        <h1 id="title">我是标题</h1>
    </div>
</body>
// 要求添加一个有内容的 span 节点到 id 为 title 的节点后面
    <script>
        // 父元素
        let container = document.getElementById('container')
        //创建span
        let targetSpan = document.createElement('span')
        // span 内容
        targetSpan.innerHTML = 'hello world'
        //添加节点
        container.appendChild(targetSpan)
    
    </script>

2、删除节点

       // 删除指定的 DOM 节点
        // 父元素
        let container = document.getElementById('container')
        //目标节点
        let targetH1 = document.getElementById('title')
        // 删除节点
        container.removeChild(targetH1)

3、修改节点

<body>
    <div id="container"> 
        <h1 id="title">我是标题</h1>
        <p id="content">我是内容</p>
      </div>
</body>
    // 现在需要调换 title 和 content 的位置,可以考虑 insertBefore 或者 appendChild
    let container = document.getElementById('container')
    let title = document.getElementById('title')
    let content = document.getElementById('content')
    container.insertBefore(content, title)