一.BOM&DOM

。DOM相当于之前写的网页

BOM相当于当前打开的浏览器窗口

一.BOM 是浏览器对象模型 其实就是之前使用过的window对象

        该对象身上有很多成员(属性和方法),这些属性和方法用于操作浏览器本身

由于window对象是浏览器的默认对象,所以在使用它身上的成员时,可以省略window

1.1各种弹框

window.alert('消息框')
window.prompt('请输入')
window.confirm('确定删除吗?')

2.打开和关闭窗口 open方法用于打开新窗口

<button id='btn'>打开页面</button>
 let btn = document.getElementById('btn')
 btn.onclick = function(){
 // open方法,用于打开新窗口
            window.open('./index02.html')
        }

第一步:document.getElementById('btn')通过它获取按钮 ,第二步给它一个点击事件 btn.onclick = function(){}

3.关闭当前窗口, close方法关闭窗口

let btn = document.getElementById('btn')
 btn.onclick = function(){
 // open方法,用于打开新窗口
            window.close()
        }

4.通用方法

//parseInt()用于将字符串转为整数
//parseFloat()用于将字符串转为浮点数
 // isNaN()方法,用于检查一个字符串是不是非数字,只要不是数字格式就返回true

let num1 = window.parseInt('123') 
let num2 = window.parseFloat('123.123')
console.log(window.isNaN('123'));
console.log(window.isNaN('123.123'));
console.log(window.isNaN('123.123.123'));

 5.计时器

        setTimeout(参数1,参数2)指定毫秒后,执行的定时器,其中参数1是函数,它只执行一次

        setInterval (参数1,参数2)每隔指定的毫秒后,执行一次,它是重复的

 window.setTimeout(()=>{
            console.log('好好学习');
        },3000)
 window.setInterval(()=>{
            console.log('天天向上');
        },3000)

6.常用属性 location

location属性,用于设置网页地址栏信息。 location对象的href属性,用于跳转浏览器的地址

 <button id="bd">到百度</button>
 let bd = document.getElementById('bd')
 bd.onclick = function(){
            // location对象的href属性,用于跳转浏览器的地址
            window.location.href = 'https://baidu.com'
        }
 let sx = document.getElementById('sx')
 sx.onclick = function(){
            // location.reload()方法 表示刷新当前地址栏(刷新当前窗口)
            window.location.reload()
        }

 //         location.reload()方法 表示刷新当前地址栏(刷新当前窗口)

history属性:

history是window对象的属性,该属性用于设置网页的浏览历史记录

forward()前进

window.history.forward()

back()后退

window.history.back()

go()方法,既可以实现前进,也可以实现后退

window.history.go(1) //前进一次

window.history.go(3) //前进三次

window.history.go(-1) //后退一次

window.history.go(-3) //后退三次

<h1>苹果</h1>
    <a href="./two.html">西瓜</a>
    <hr>
    <button id="ht">后退</button>
    <button id="qj">前进</button>
    <script>
        let ht = document.getElementById('ht')
        ht.onclick = function(){
            // history对象的back方法,用于从浏览器的历史记录后退
            // window.history.back()   后退方法一
            // go方法的优势,比较灵活,-1表示后退1次,-3表示后退3次
            // 后退方法二
            window.history.go(-1)   //后退一次
        }
        let jq = document.getElementById('qj')
        qj.onclick = function(){
            // history对象的forward方法,用于从浏览器的历史记录前进
            // window.history.forward()
            window.history.go (1)  //前进1次
        }
    </script>

 后退   window.history.back()   ,或者: window.history.go(-1)   后退

前进:window.history.forward()  。或者  window.history.go(1)



二、DOM

        // DOM 文档对象模型,其实就是当前网页中的所有内容

        // DOM 就是 document对象,我们是通过document对象类操作当前网页中的内容的

        // 使用DOM获取网页元素:

        // 如果获取 的元素,是网页中的唯一元素,可以通document直接获取

       2.1 document.title = '好好学习'


 let msg = document.getElementById('msg')
        msg.innerHTML = '大家好!我是小敏'

         2.2getElementById方法,根据元素的id属性值来获取元素

        // 注意:如果当前网页中拥有多个id属性值相同元素,只能获取第一个元素

        // innerHTML属性,用于在网页元素中添加内容

        2.3 、getElementsByTagName方法,根据元素的标签名获取所有该元素

<ul>
        <li>南京</li>
        <li>常州</li>
        <li>苏州</li>
        <li>无锡</li>
    </ul>
<script>
let lis = document.getElementsByTagName('li')
        for(let i=0;i<lis.length;i++){
            lis[i].innerHTML = '哈哈!'
        }
</script>

 2.4、 getElementsByName方法,根据元素的name属性值获取是所有该元素

<div name="one">我是div</div>
<p name="one">我是p</p>
<h2 name="one">我是h2</h2>
<script>
 let ones = document.getElementsByName('one')
        ones.forEach(r=>{  //r是每个元素
            r.style.background = 'lightblue'
        })
</script>

2.5、getElementsByClassName方法,根据元素的class属性值获取 所有的该元素

<div class="two">我是div</div>
<p class="two">我是p</p> 
<h2 class="two">我是h2</h2>
<script>
let twos = document.getElementsByClassName('two')
for(let i =0;i<two.length;i++){
    twos[i].style.border = '2px solid blue'
}

三、获取DOM元素

1、querySelector方法,根据任意格式的选择器获取第一个元素

<h1>DOM</h1>
<div id="msg"></div>
<div id="msg"></div>
<script>
let msgs = document.querySelector('#msg')  //根据id选择器获取元素
msg.innerHTML = '你好,欢迎来到我晚点世界'
}
</script>

 <ol>
        <li>南京</li>
        <li>常州</li>
        <li>苏州</li>
        <li>无锡</li>
    </ol>
<script>
let lis = document.querySelector('li') //根据标签选择器获取元素
lis.style.background = 'lightblue'
</script>

 

 根据后代选择器获取元素

 2、querySelectorAll方法,根据任何格式的选择器获取所有元素

querySelectorAll()方法,返回的是集合对象,不是数组对象。可以利用展开运算符,将集合对象转为数组对象。

<ul>
        <li>南京</li>
        <li>常州</li>
        <li>苏州</li>
        <li>无锡</li>
    </ul>
<script> 
let li = document.querySelector('ul li')  //根据后代选择器获取元素
li.style.background = 'lightblue'
// querySelectorAll方法,根据任意格式的选择器获取所有元素
        let lis = document.querySelectorAll('ul li')
        lis.forEach(r => {  //r是每一位元素
            r.innerHTML = '哈哈!' //把ul中的li中的每一位元素的在html中的内容都改成哈哈
        })
</script>

 

 



四、操作元素内容

<div id="one"></div>
<div id="two"></div>

想要给div添加内容就必须获取div

<script>
// innerText属性,用于获取 和操作 DOM的文本内容
//这里把'<h2>好好学习</h2>'中的<h2>当成文本来展示
document.querySelector('#one').innerText = '<h2>好好学习</h2>' 
// innerHTML属性,用于获取 和 操作 DOM的HTML内容
//这里把'<h2>好好学习</h2>'中的<h2>当成html标签来展示
document.querySelector("#two").innerHTML = '<h2>好好学习</h2>'
</script>

4.1、 innerText属性,用于获取 和操作 DOM的文本内容

4.2     innerHTML属性,用于获取 和 操作 DOM的HTML内容

五、操作DOM的样式

操作DOM的样式,有多种方式:

  1. 通过style属性直接设置

  2. 通过className属性设置类选择器

  3. 也可以通过classList属性添加多个类选择器

<style>
.box{
    color:pink;
    border:1px solid #ccc;
}
</style>
<div id="one"></div>
<div id="two"></div>

5.2、通过style属性,给元素添加行内样式

one.style.color = 'red'
one.style.border = '1px solid #ccc'

 5.3、通过className属性设置类选择器

two.className = 'box'

5.4、也可以通过classList属性添加多个类选择器

<style>
.red {
            color: red;
        }
.border{
            border: 1px solid #ccc;
        }
</style>
<body>
 <div id="three"></div>
</body>
<script>
three.classList.add('red')
</script>

六、. 创建和删除DOM元素

1、创建元素:

        createElement()方法,用于创建DOM元素

        appendChild()方法,用于在当前DOM元素中添加子元素

给ul 添加li

button id="btn1">添加li元素</button>
<ul id="ul"></ul>
<script>
        // 获取ul对象
        let ul = document.querySelector('ul')
        // 给btn1注册点击事件
        document.querySelector('#btn1').onclick = function(){
            // createElement方法,用于创建DOM元素
            let li = document.createElement('li')
            li.innerHTML = '哈哈哈'
            // appendChild 方法,用于在当前元素中,添加子元素
            ul.appendChild(li)
        }
    </script>

 添加表格

<button id="btn2">添加tr元素</button>
    <table>
        <tbody id="tbody">
        </tbody>
    </table>
<script>
 // 获取tbody对象
        let tbody = document.querySelector('#tbody')
        // 给btn2注册点击事件
        document.querySelector('#btn2').onclick = function(){
            // 创建一个tr元素
            let tr = document.createElement('tr')
            // 创造一个td元素
            let td1 = document.createElement('td')
            td1.innerHTML = '章三'
            let td2 = document.createElement('td')
            td2.innerHTML = '20岁'
            let td3 = document.createElement('td')
            td3.innerHTML = '女'
            // 把td添加到tr
            tr.appendChild(td1)
            tr.appendChild(td2)
            tr.appendChild(td3)
            // 把tr添加到tbody上
            tbody.appendChild(tr)
        }
</script>

2.删除元素(自删,它删)

remove()方法,用于移除自己

removeChild()方法,用于移除指定的子元素

<style>
        .box1{
            width: 200px;
            height: 200px;
            border: 2px solid rebeccapurple;
        }
        .box2{
            width: 100px;
            height: 100px;
            border: 2px solid black;
        }
    </style>

 <div class="box1">
        <div class="box2"></div>
    </div>
    <script>
        // box2点击事件
        document.querySelector('.box2').onclick = function(){
            //事件方法里面的this,执行触发事件的源对象
            // remove()方法,用于移除自己
            this.remove()
        }
        // box1容器点击事件
        document.querySelector('.box1').onclick = function(){
            // 获取box2容器
            let box2 = document.querySelector('.box2')
            // removeChild()方法,用于移除指定的子元素
            this.removeChild(box2)
        }
    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值