笔记总结:Wed前端——DOM和BOM

DOM和BOM

一、BOM

1.概念

BOM(Browser Object Model),浏览器对象模型,BOM提供了独立于内容的对象结构,可与浏览器窗口互动。

2.window对象

包含3个对象:history、document和location

  1. history对象

    用于控制页面历史记录的显示。

    名称说明
    back()页面展示前一个历史记录
    forward()页面展示后一个历史记录
    go(整数)展示给定数量的历史记录,如果为正则展示后面的,负数则展示前面的
    <a href="javascript: history.back()">返回上一个页面</a>
    
  2. location对象

    获取和更改浏览器地址栏信息。

    名称说明
    host设置或返回主机名和当前URL端口号
    hostname设置或返回当前URL主机名
    href设置或返回完整的URL
    reloead()重新加载当前文档,刷新页面
    replace(url)用新文档替换当前文档
  3. document对象

    操作页面元素

    名称说明
    getElementById(“id”)根据id值获取元素
    getElementsByName(“name”)根据name获取多个元素,返回数组
    getElementsByClassName(“class”)根据类名获取多个元素,返回数组
    getElementsByTagName(“tag”)根据标签名获取多个元素,返回数组
    let a = document.getElementById("a")
    /*a.innerText = "b"*/
    /*a.innerHTML="<h1>内置html标签</h1>"*/
    a.textContent="c"
    

二、Date类

方法说明
getDate()一个月中的第几天
getDay()一周的第几天,开始为周日,值为0
getHours()
getMinutes()
getSeconds()
getMonth()0-11
getFullYear()
getTime()毫秒数

得到当前月的最大天数:

let now = new Date();
let month = now.getMonth()
now.setMonth(month + 1)
now.setDate(0)	//日期变为上个月的最大天数
console.log(now.getDate())

三、周期函数和延迟函数

函数说明
setInterval(函数,间隔时间)按照给定间隔时间重复执行函数,单位毫秒
clearInterval(周期函数)清除周期函数
setTimeout(函数,延迟时间)在延迟时间后执行函数
clearTimeout(延迟函数)清除延迟函数

结合Date类实现即时的日期显示

函数可以写为字符串形式

四、DOM

1.概念

DOM(Document Object Model),文档对象模型,提供对页面内容的操作。

DOM中,所有的内容都是DOM节点,所有的标签都是DOM元素,节点关系构成了DOM树。

2.节点属性
属性名说明
parentNode获取父节点
childNodes所有子节点,其中换行键、注释也算是子节点
firstChild第一个子节点
lastChild
nextSibling下一个同级节点
previousSibling
3.元素属性
属性名说明
parentElement
children下一级子元素
firstElementChild
lastElementChild
nextElementSibling
previousElementSibling
4.节点操作
名称说明
createElement(tagName)使用document类调用该方法,返回一个新的节点
A.appendChild(B)追加到子节点的最后
A.remove()
A.getAttribute(“属性名”)
setAttribute(“属性名”, 元素值)

Example:

<body>
<div>
  <input type="button" value="查询" id="button">
</div>
<table>
  <thead>
    <tr>
      <td>姓名</td>
      <td>性别</td>
      <td>年龄</td>
    </tr>
  </thead>
  <tbody id="dataBox">
  </tbody>
</table>
<script>
  let button = document.getElementById("button")
  //点击查询创建表
  button.onclick = function (){
    //每次查询重新创建表
    let dataBox = document.getElementById("dataBox")
    let table = dataBox.parentElement
    dataBox.remove()
    dataBox = document.createElement("tbody")
    dataBox.setAttribute("id", "dataBox")
    table.appendChild(dataBox)

    let tr = document.createElement("tr")
    let td = document.createElement("td")
    td.textContent="张三"
    tr.appendChild(td)
    td = document.createElement("td")
    td.textContent="男"
    tr.appendChild(td)
    td = document.createElement("td")
    td.textContent="20"
    tr.appendChild(td)
    dataBox.appendChild(tr)
  }
</script>
</body>
5.节点样式
  1. style样式

    节点.style.样式属性="属性值"
    
  2. class样式

    节点.className="类名"
    

    一个节点类可以有多个

移除样式:赋空值

6.节点属性
属性说明
offsetLeft当前元素左边界到其上级元素左边界的距离,只读
offsetTop上边界到上级元素上边界的距离,只读
offsetHeight元素的高度
offsetWidth元素的宽度
offsetParent返回元素的偏移容器
scrollTop匹配元素的滚动条的垂直位置,需要先给html设置属性overflow:scroll
scrollLeft匹配元素滚动条的水平位置
clientWidth元素可见宽度
clientHeight元素可见高度

五、promise对象

1.简介

表示未来将要发生的事件,用于传递异步操作的消息(如抛出异常),其状态不受外界影响。

Promise代表一个异步操作,有三种状态:

  • pedding:初始态
  • fulfilled:操作成功
  • rejected:操作失败

只有异步操作的结果才能够改变promise的状态,其他手段都不能改变。

一旦异步操作初始状态发生改变,其状态就凝固,不可再更改。

2.语法
let promise = new Promise(function(resolve,reject){
    //异步处理
    //处理结束后,调用resolve或reject方法
})
promise.then(function(result){
    //resolve方法结果通过result参数传递
    //操作成功后处理
})
promise.catch(function(error){
    //reject方法通过error参数传递
    //操作失败后处理
})

//链式调用
let promise = new Promise(function(resolve,reject){
    //异步处理
    //处理结束后,调用resolve或reject方法
}).then(function(result){
    
}).catch(function(error){
    
})

示例:

function calculate(a,b){
    let promise = new Promise(function(resolve,reject){
        if(b == 0){
            reject(new Error("除数不能为0"))
        }
        else{
            resolve(a/b)
        }
    })
    promise.then(function(resp){
        console.log(resp)
    })
    promise.then(function(error){
        console.log(error)
    })
}

六、箭头函数

相当于Lambda表达式,使用=>

示例:

function calculate(a,b){
    let promise = new Promise((resolve,reject) => {
        if(b == 0){
            reject(new Error("除数不能为0"))
        }
        else{
            resolve(a/b)
        }
    })
    promise.then(resp => {
        console.log(resp)
    })
    promise.then(error => {
        console.log(error)
    })
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值