dom与bom的概念

BOM,DOM

1.bom对象概念

BOM:浏览器对象模型(地址栏,历史记录,屏幕,滚动条,关闭)
顶级对象window

         下面5个属于window的子对象
               document  文档对象
               history   历史记录对象
               location  地址栏对象
               screen    屏幕对象
               navigtor  浏览器对象

​ 自定义对象
​ 内置对象 Array String Math
​ 宿主对象

2.window的五大对象

当页面全部加载完成后执行

 window.onload = function () {
            var div = document.getElementById('div')
            console.log(div);
        }
  1. document文档对象

    1. body  获取body的
    
    1. documentElement 获取html的
      console.log(document.body); console.log(document.documentElement); // 获取html的
 screen 屏幕对象
    // console.log(screen.width);
    // console.log(screen.height);
 history 历史记录
    // console.log(history);
    //   方法:back()   后退一个页面
    //   方法:forward()   前进一个页面
    //        history.go(-1)  往后退
    //        history.go(1)  往前进
location地址栏
    //   host: 主机 域名   host: "www.jd.com"
    //   href: 地址栏信息
    //   pathname:路径名
    //   port: 端口
    //   protocol: 协议名 https http  ftp 
    //  方法:reload() 刷新
window.location.reload() ;// 刷新,放在全局位置会一直刷新。f5
window.location.reload(true) ;// 强制刷新,放在全局位置会一直刷新。f5+shift

 不建议放在window全局下

 navigator: 浏览器相关信息
 console.log(navigator);
3.window的相对属性和方法

浏览器的可视宽度:docuemnt.body.clientWidth
window对象
属性:innerHeight(浏览器的高度,带滚动条)
innerWidth(浏览器的宽度,带滚动条)
console.log(window.innerWidth);//
console.log(innerWidth);//window对象可以省去
console.log(document.body.clientWidth);//获取元素的可视宽度

方法:alert() 弹出框 等价于 window.alert()
  confirm()确认框  带返回值,点击确定返回true,点击取消返回false
  prompt()输入框   待返回值  返回你输入的内容
  setInterval(回调函数,毫秒值)设置间歇型定时器
  clearInterval(定时器名称) 清除间歇型定时器
  setTimeout(回调函数,毫秒值) 设置延迟性定时器(超时定时器)
  clearTimeout 清除延迟性定时器(超时定时器)
  onload() : 等页面资源(页面图片,文字,标签)加载完毕后执行
  onscroll():  页面滚动时会触发 
  onresize():  页面窗口变化时触发
     window.onscroll = function(){
     console.log('11');
   }
    window.onresize = function(){
    console.log('11');
  }
   window对象BOM的顶级对象
       console.log(window);
  顶级对象下面有5个子对象
     console.log(window.document); //window可以省去
     console.log(window.history);
     console.log(window.screen);
     console.log(window.navigator);
     console.log(window.location);
    var flag =  window.confirm('确定删除吗?')
    console.log(flag);
     setInterval(回调函数,毫秒值)
     var n = 6;
   初始化一个定时器名称
     var timer = null;
   赋值
     timer = setInterval(function(){
     document.body.innerHTML = n;
      n--;
     if (n==0) {
      clearInterval(timer)
      document.body.innerHTML = '倒计时完毕';
    }
    },500)
    setTimeout(function(){
    document.write('我是超时定时器~')
  },1000)
#### 4.表格的增加
document.createElement('标签名')
    // 1. 获取到tbody
   var oTbody = document.getElementById('tbody')
    // 创建一行
   var oTr = document.createElement('tr')
    // 创建列
    var oTd1 = document.createElement('td')
    var oTd2 = document.createElement('td')
    var oTd3 = document.createElement('td')

    // 往td1,td2,td2中设置内容
    oTd1.innerText = '语文'
    oTd2.innerText = '数学'
    oTd3.innerText = '英语'

    // 把每一列追加放到行中
    oTr.appendChild(oTd1)
    oTr.appendChild(oTd2)
    oTr.appendChild(oTd3)

    // 把行追加到tbody中
    oTbody.appendChild(oTr)
5.操作元素

​ // 虽然页面只有一个,但是你用的获取的数组方法,所以需要加下标

 // 1. 先获取元素
var oDivs = document.getElementsByTagName('div')[0]
// 2. 设置样式
// oDivs.style.width = getRandomNum()+'px'
// oDivs.style.height = getRandomNum()+'px'
// oDivs.style.backgroundColor = getColor()
// oDivs.style.fontSize = getNum(10,80)+'px'
// oDivs.style.color = "#000"
oDivs.className = 'box'

// 3. 设置内容  innerHTML 支持标签   innerText不支持标签
 oDivs.innerHTML = '<a href="http://www.baidu.com">百度</a>'
oDivs.innerText = '<a href="http://www.baidu.com">百度</a>'
6.创建标签
  1. 创建元素 create(创建)
    var oDiv = document.createElement(‘div’);

    1.1 给div设置样式
    oDiv.style.width = ‘100px’
    oDiv.style.width = ‘100px’
    給div加了以类名box
    oDiv.className = ‘box’

    2. 追加到页面(在body中追加一个div)
       document.body.appendChild(oDiv)
    
7.DOM

DOM:文档对象模型
一句话理解:先获取页面的元素,增删改查,改变样式等操作。

 1. 获取元素的方法:4+2种   Element(标签)
 1.1 docuemnt.getElementById() 通过id名查找元素  只能获取11.2 document.getElementsByClassName()  通过类名查找元素
获取的是一组数据。类似于数组,但并不是数组,不能使用数组中的方法
   var oItems       =document.getElementsByClassName('item')
        // console.log(oItems);
        // console.log(oItems[0]);
        // console.log(oItems.length);
1.3 document.getElementsByTagName()  通过标签名来获取元素
获取的是一组数据。类似于数组,但并不是数组,不能使用数组中的方法
        var oDivs =    document.getElementsByTagName('div')
   console.log(oDivs[1]);// 获取的是页面的第二个div
1.4 document.getElementsByName()  通过表单中的name属性来获取元素,获取的是多个
   var oIpts = document.getElementsByName('abs');
   console.log(oIpts[0]);
8.dom元素的删除

为了能够确定删除的元素,需要在点击函数的参数位置写一个参数

onclick="dele(this)"   this指代自己
   function dele(obj){
        // obj.remove()
        // obj.parentNode  找到this的父元素
        // obj.parentNode.remove(); // 删除的是p标签
   obj.parentNode.parentNode.remove(); // 删除的是div标签
    }
    ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值