首页 > 其他分享 >前端基础之BOM和DOM,jQuery类库

前端基础之BOM和DOM,jQuery类库

时间:2022-12-06 22:48:43浏览次数:39  
标签:类库 jQuery 浏览器 DOM 对象 标签 用户 window let

BOM操作

BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。

window对象

Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。

所有浏览器都支持 window 对象。它表示浏览器窗口。

一些常用的Window方法

  • window.innerHeight - 浏览器窗口的内部高度
  • window.innerWidth - 浏览器窗口的内部宽度
  • window.open() - 打开新窗口
  • window.close() - 关闭当前窗口
window.open('https://www.baidu.com/','','width=1600px,height=800px')

//打开‘百度’,以宽度为1600px,高度为800px展示

window的子对象

navigator对象(了解即可)

浏览器对象,通过这个对象可以判定用户所使用的浏览器,包含了浏览器相关信息。

navigator.userAgent
     
//标识自己是一个浏览器

history对象(了解即可)

window.history 对象包含浏览器的历史。

浏览历史对象,包含了用户对当前页面的浏览历史,但我们无法查看具体的地址,可以简单的用来前进或后退一个页面。

history.forward()  // 前进一页
history.back()  // 后退一页

location对象

window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

常用属性和方法:

location.href    //获取当前网址
location.href="URL"   // 跳转到指定页面
location.reload()   //重新加载页面

弹出框

可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。

警告框

警告框经常用于确保用户可以得到某些信息。

当警告框出现后,用户需要点击确定按钮才能继续进行操作。

语法:

alert("你看到了吗?");

确认框(了解即可)

确认框用于使用户可以验证或者接受某些信息。

当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。

如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。

语法:

confirm("你确定吗?")

提示框(了解即可)

提示框经常用于提示用户在进入页面前输入某个值。

当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。

如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。

语法:

prompt("请在下方输入","你的答案")

计时相关(重要)

通过使用 JavaScript,我们可以在一定时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。

setTimeout()

语法:

var t=setTimeout("JS语句",毫秒)

setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。

setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。

第二个参数指示从当前起多少毫秒后执行第一个参数(1000 毫秒等于一秒)。

clearTimeout()

语法:

clearTimeout(setTimeout_variable)

举个例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function showMsg() {
        alert('快来爬取美女图片吧~')
    }
    let t = setTimeout(showMsg, 3000)  // 等待3000毫秒执行
    clearTimeout(t)  // 取消任务
</script>
</body>
</html>

上述操作因为执行之后马上取消掉了,所以弹框不会出现。

改进一下之后:

 效果: 下述弹框会叠加出现3次

 

DOM

DOM (Document Object Model)是指文档对象模型,通过它可以访问HTML文档的所有元素

既然DOM操作是通过js代码来操作标签,所以我们需要先学习如何查找标签之后才能给标签绑定一些JS代码(DOM操作)。

查找标签

"""
1.js中变量名的命名风格推荐是驼峰体
2.js代码查找到的标签如果需要反复使用可以用变量接收 规律 xxxEle
"""

注意:

涉及到DOM操作的JS代码应该放在body的最下方。

间接查找

parentElement                父节点标签元素
children                     所有子标签
firstElementChild            第一个子标签元素
lastElementChild             最后一个子标签元素
nextElementSibling           下一个兄弟标签元素
previousElementSibling       上一个兄弟标签元素

操作节点

创建节点

语法:

createElement(标签名)

1. 先通过html创建两个标签:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <p>今天天气不错 适合晒被子 晚上睡起来带劲!!!</p>
        <a href="#">点我更带劲</a>
    </div>
</body>
</html>

2. 往a标签尾部动态追加一个标签:

 js代码操作标签属性

aEle.href = 'http://www.lsmpx.com/'    //只能添加默认的属性
setAttribute()    //兼容默认属性和自定义属性
getAttribute("age")
removeAttribute("age")

 获取文本内容

.innerText           获取标签内部所有的文本内容
.innerText = '文本'  替换/设置标签内部的文本(不识别标签语法)

.innerHTML            获取标签内部所有的标签包含文本
.innerHTML = '文本'  替换/设置标签内部的文本(识别标签语法)

 

 

 

 

获取值操作(重要)

1.针对用户输入的和用户选择的标签

标签对象.value

 

案例:动态获取用户输入的数据

 

 2.针对用户上传的文件数据

标签对象.files        //fileList  [文件对象、文件对象、文件对象]

标签对象.files[0]       //文件对象

 

class与css操作

1.js操作标签css样式

标签对象.style.属性名(下划线没有 变成驼峰体)

 

 

 

2.js操作标签class属性

标签对象.classList.add()    //添加类
标签对象.classList.contains()    //存在返回true,否则返回false
标签对象.classList.remove()    //删除指定类
标签对象.classList.toggle()    //存在就删除,否则添加

事件(重要)

事件可以简单的理解为通过js代码给html标签绑定一些自定义的功能。

常见事件

onclick        //当用户点击某个对象时调用的事件句柄
onfocus        //元素获得焦点            
onblur         //元素失去焦点              
onchange       //域的内容被改变 

绑定事件的多种方式

方式一:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <button onclick="showMsg()">快按我</button>
<script>
      function showMsg() {
      let msg = prompt('你确定要这样吗?');
      console.log(msg)
      }
</script>
</body>
</html>

 

方式2:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type ="button" value="快快快" id="d1">
    <script>
      let inputEle = document.getElementById('d1');
      inputEle.onclick = function (){
        alert('谁在那里点我')
      }
</script>
</body>
</html>

 

事件函数中的this关键字

this指代的就是当前被操作的标签对象本身。 

 

 如果事件函数内有多层嵌套,那么最好在一开始用变量存储一下防止后续变化

let currentEle = this

 

onload方法

XXX.onload     //等待XXX加载完毕之后再执行后面的代码

事件实战案例

 省市联动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
省:
<select id="d1" name="">

</select>

市:
<select id="d2" name="">

</select>
<script>
    let data = {
        "河北": ["廊坊", "邯郸"],
        "湖北": ["武汉", "黄冈"],
        "安徽": ["芜湖", "合肥"],
        "山东": ["济南", "青岛"]
    }
    let proSeEle = document.getElementById('d1')
    let citySeEle = document.getElementById('d2')
    // 1.获取所有的省信息
    for (let pro in data) {
        // 2.创建option标签
        let proOpEle = document.createElement('option');
        // 3.添加文本及属性
        proOpEle.innerText = pro;
        proOpEle.setAttribute('value', pro);
        // 4.将创建好的option标签添加到省下拉框中
        proSeEle.appendChild(proOpEle)
    }
    // 5.给省标签绑定文本域变化事件 onchange
    proSeEle.onchange = function () {
        citySeEle.innerText = '';  //每次操作市之前清空市信息
        // 6.获取用户选择的省信息,根据省获取市信息
        let targetProData = this.value;
        let cityDataList = data[targetProData]
        console.log(cityDataList)
        // 7.循环获取每一个市信息,创建option标签,添加到市下拉框中
        for (let i = 0; i < cityDataList.length; i++) {
            let cityOpEle = document.createElement('option');
            //重复上面省相同的操作
            cityOpEle.innerText = cityDataList[i];
            cityOpEle.setAttribute('value', cityDataList[i]);
            citySeEle.appendChild(cityOpEle)
        }
    }
</script>

</body>
</html>

 

标签:类库,jQuery,浏览器,DOM,对象,标签,用户,window,let
From: https://www.cnblogs.com/chen-ao666/p/16955889.html

相关文章

  • JavaScript与jQuery基础入门到放弃
    JavaScript与jQuery基础入门到放弃引言:-BOM操作-DOM操作-jQuery类库BOM操作BOM(BrowserObjectModel)指浏览器对象模型,使JavaScript有能力与浏览器交互......
  • 前端之jQuery
    jQueryIE浏览器:前端针对IE有时候需要单独写一份代码jQuery的宗旨是:Writeless,domore写的更少做的更多加载速度快选择器更对更好用链式表达式:jQuery的链式操作可......
  • BOM与DOM、jQuery类库
    BOM与DOM、jQuery类库目录BOM与DOM、jQuery类库Window对象BOM操作DOM操作操作节点获取值操作class与css操作事件jQuery类库标签对象与jQuery对象Window对象window对象表......
  • 前端之js之BOM操作-DOM操作-jQuery类库
    目录前端之js之BOM操作-DOM操作-jQuery类库今日内容概要今日内容详细BOM操作DOM操作查找标签操作节点获取值操作class与css操作事件事件实战案例jQuery类库标签对象与jQuer......
  • BOM操作、DOM操作与jQuery类库
    昨日内容回顾JS基础介绍JavaScript是一门前端语言,只是长得像Java,实际与Java无关。JS基本使用变量与常量定义变量使用var或let关键字,定义常量使用const关键字,常......
  • 前端开发:5、BOM操作、DOM操作、jQuery类库
    JavaScript目录JavaScript一、BOM操作1、window对象2、navigator对象3、screen对象4、history对象5、location对象6、弹出窗7、计时相关二、DOM操作1、查找标签2、操作......
  • 前端之BOM、DOM操作
    BOM操作JavaScript分为ECMAScript,DOM,BOM。BOM(BrowserObjectModel)是指浏览器对象模型,它使JavaScript有能力与浏览器进行“对话”。DOM(DocumentObjectModel)是指文......
  • BOM操作、DOM操作、查找标签、操作节点、获取值操作、class与css操作、事件、事件实战
    目录BOM操作DOM操作查找标签操作节点获取值操作class与css操作事件事件实战案例jQuery类库标签对象与jQuery对象BOM操作BOM(BrowserObjectModel)是指浏览器对象模型,它使......
  • JS中BOM与DOM操作
    BOM操作window对象是与浏览器窗口做交互的语言BOM=BrowserObjectModel是指浏览器对象模型,它可以使Javascript有能力和浏览器进行对话window.open()//打开一个......
  • BOM操作、DOM操作、查找标签、操作节点、获取值操作、class与css操作、事件、事件实战
    目录BOM操作与DOM操作BOM(浏览器对象模型)DOM操作查找标签操作节点获取值操作class与css操作事件事件实战案例jQuery类库标签对象与jQuery对象BOM操作与DOM操作BOM(Browser......