JavaScript-BOM操作和DOM操作

系列文章目录

一、BOM操作

BOM全称Browser Object Model(浏览器对象模型),该模型用来操作浏览器对象

1. 常用对象及其属性和方法

  • window对象:

    该对象指的就是浏览器的页面窗口。

    属性或方法说明
    window.innerHeight窗口高度
    window.innerWidth窗口宽度
    window.open(‘指定url’, ‘’, ‘height=高度px,width=宽度px’)以指定尺寸在子页面中,打开该url
    window.close()关闭页面
  • window.navigator对象:

    属性描述
    appName返回浏览器的名称。
    appVersion返回浏览器的平台和版本信息。
    browserLanguage返回当前浏览器的语言。
    platform返回运行浏览器的操作系统平台。
    systemLanguage返回操作系统使用的默认语言。
    userAgent返回浏览器用于 HTTP 请求的用户代理头的值
    userLanguage返回操作系统的自然语言设置。

    userAgent属性是只读的,包含客户端的一些基本信息,这些信息在每次浏览器 HTTP 请求时发送到服务器。

    useragent举例:

    “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.84”

  • window.history对象:

    方法说明
    history.back()回退到上一个页面
    history.forward()前进到下一个页面
  • window.location对象:

    属性或方法说明
    location.href返回当前页面的url
    location.href=指定url跳转到指定url
    location.reload()重新加载页面,即刷新

2. 弹出框

  • 警告框:

    alert("警告信息!")
    
  • 确认框:

    confirm("你是认真的吗?")
    

    在确认框中,按下确定返回true,取消则返回false。

  • 提示框:

    prompt("提示信息","默认值")
    

    确认框中,提示信息下有一个输入框,默认值显示在该输入框中,可以删除。

    点击确定就会返回输入框里的内容。

3. 计时器

  • 等待一段时间后只触发一次(一次):

    var 变量名 = setTimeout(函数名,时间)
    

    如果定时器需要被清除,则需要使用变量保存定时器。

    时间参数的单位为毫秒。

    清除:

    clearTimeout(变量名)
    
  • 每隔一段时间就触发一次(循环):

    var 变量名 = setInterval(函数名,时间)
    

    清除:

    clearInterval(变量名)
    

二、DOM操作

DOM全称Document Object Model(文档对象模型),当网页被加载时,浏览器会创建页面的DOM。通过DOM,js就能够访问和改变 HTML 文档的所有元素

  • DOM树:

    HTML DOM模型被构造为对象的树。

    DOM
    图片引用自https://www.cnblogs.com/juham/p/13361668.html

1. 查找元素(标签)

想要通过DOM操作元素,就先要查找并获取元素!!!

  • 直接查找:

    // id查找
    var 变量 = document.getElementById('元素id')
    // 类查找
    var 变量 = document.getElementsByClassName('元素类名')
    // 标签查找
    var 变量 = document.getElementsByTagName('元素标签名')
    

    类查找和标签查找,通常会找到多个元素。因此,这两种查找方法返回的是元素组成的数组,方法名中Element后面也多了个s

  • 间接查找:

    在上面方法的基础之上,还可以通过元素间的关系查找元素。

    // 获取父元素
    元素.parentElement
    // 获取所有子元素,返回数组
    元素.children
    // 获取第一个子元素
    元素.firstElementChild
    // 获取最后一个子元素
    元素.lastElementChild
    

2. 节点(元素)操作

  • 创建元素:

    document.createElement('标签名称')  //返回元素对象
    
  • 在元素内部添加元素:

    外部元素.appendChild(要添加的元素)  // 追加到子元素的最后面
    
  • 获取或设置元素内部的文本

    元素.innerText = '文本内容'
    
  • 获取或设置元素内部的所有内容

    innerHtmlinnerText的区别在于:后者只能操作文本内容,不能操作内部的标签,而前者则可以。

    元素.innerHtml = '内容'
    
  • 在A节点内部的B节点前面,插入C节点:

    A节点.insertBefore(C节点, B节点)
    
  • 添加或修改属性及值:

    元素.setAttribute('属性','值')  // 支持自定义属性
    元素.属性 = '值'  // 不支持自定义属性
    
  • 获取属性值:

    元素.getAttribute('属性名')
    
  • 移除元素的指定属性:

    元素.removeAttribute('属性名')
    
  • 获取用户上传的文件:

    元素.fileEle.files[0]
    

3. 事件

  • 事件的概念:

    事件是指发生在html元素上的一些状况,比如,元素被点击、获得焦点等。事件发生时,可以触发一些js代码的执行。

  • 常见的事件:

    onclick:当用户点击某个对象。
    ondblclick:当用户双击某个对象。
    onfocus: 元素获得焦点。
    onblur:元素失去焦点。
    onchange:域的内容被改变。
    onkeydown:某个键盘按键被按下。
    onkeypress:某个键盘按键被按下并松开。
    onkeyup:某个键盘按键被松开。
    onload:一张页面或一幅图像完成加载。
    onmousedown:鼠标按钮被按下。
    onmousemove:鼠标被移动。
    onmouseout:鼠标从某元素移开。
    onmouseover:鼠标移到某元素之上。
    onselect:在文本框中的文本被选中时发生。
    onsubmit:确认按钮被点击,使用的对象是form。

  • 绑定方法:

    • 方法1:

      直接在标签内写入,this关键字指的是触发事件的当前元素。

      <div onclick="changeColor(this);">点我</div>
      
      <script>
        function changeColor(this) {
          this.style.backgroundColor="green";
        }
      </script>
      
    • 方法2:

      在js脚本中,先获取触发事件的元素,然后绑定。

      <div id="d2">点我</div>
      
      <script>
        var divEle2 = document.getElementById("d2");
        divEle2.onclick=function () {
          this.innerText="呵呵";
        }
      </script>
      
  • window.onload:

    当我们给页面上的元素绑定事件的时候,必须等到文档加载完毕。因为我们无法给一个不存在的元素绑定事件。

    window.onload事件在文件加载过程结束的时候触发。此时,文档中的所有对象都位于DOM中,并且所有图像,脚本,链接和子框架都已完成加载。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花_城

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值