BOM操作

window对象

是与浏览器窗口做交互的语言

BOM = Browser Object Model 是指浏览器对象模型,它可以使Javascript 有能力和浏览器进行对话

window.open()
//打开一个新的窗口
window.open('https://www.baidu.com/','','width=300px,left=200px')
//打开的网址 以及新窗口的高度 宽度 都可以设置 window.close()
//关闭当前窗口 navigator.userAgent
//标识自己是一个浏览器 history.forward()
//浏览器前进一页
history.back()
//浏览器退回上一页
window.location.reload()
//重新加载当前页 window.location.href
//获取当前网页网址
location.href="URL"
// 跳转到指定页面

浏览器弹窗

1.警告框
alert('文本消息')
//自带确认按钮 需要点击确认弹窗消失
警告框经常用于确保用户可以得到某些信息,当警告框出现后,用户需要点击确定按钮才能继续进行操作。 2.确认框
confirm('文本消息')
//当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。
let l1 = confirm('你愿意吗?')
console.log(l1)//true 3.提示框
prompt('1+1=?')
//出现提醒消息,并用户可以输入消息 可以用变量接受消息
// 点击取消等 null

计时相关

通过js代码我们可以设定在一段时间间隔之后来执行代码,而不是

调用函数后立刻执行,我们称之为定时任务

设定定时任务
let time1 = setTimeout('js代码',毫秒)
//设定定时任务
setTimeout()方法会粗储存在变量 time1中
js代码 = 任何js代码或者函数
毫秒 = 从执行开始后的多少毫秒倒计时开始执行1秒=1000毫秒 取消定时任务
clearTimeout(time1)
//立即取消这个任务 设定循环任务
let time2 = setInterval('func',3000)
//每个3000毫秒执行一次 取消循环任务
clearInterval(time2)
//立即取消这个任务 小练习 function showtime(){
alert('你还好吗?')
} setTimeout(showtime,3000)
//3000毫秒后启动 showtime函数 只启动一次 setInterval(showtime,3000)
//无限启动 每 3000毫秒一次 如果需要关闭循环任务 let time2 = setInterval(showtime,3000)
clearInterval(time2)
需要变量接受然后关闭

DOM操作

DOM(Document Object Model)是一套对文档的内容进行抽象和概念化的方法。

DOM操作就是通过js代码来操作标签.

DOM-查找标签

/*
1.JS中变量名的命名风格推荐是驼峰体
2.js代码中如果需要反复用一个标签,可以使用变量来接受 规律是 XXXEle
*/ 1.document.getElementById('ID')
通过id来查找标签 结果就是标签本身 2.document.getElementByClassName('classname')[0]
通过类名来查询标签 返回一个数组,里面的每一个标签可以通过索引取值到具体标签 3.document.getElementByTagName('span')[0]
通过标签名来查询标签 返回一个数组 可以通过索引取值到具体标签 4.divEle = document.getElementById('d1')
获取标签本身
divEle.firstElementChild
通过标签获取标签内第一个子标签元素 5.divEle.nextElementSibling
通过标签获得同级别的下一个标签 6.divEle.previousElementSibling
通过标签获得同级别的上一个标签 7.divEle.parentElement
通过标签获得它的父级标签

操作标签

语法:document.createElement('标签名')

let divEle = document.createElement('div')

let aEle = document.createElement('a')

给创建的标签添加属性

let aEle = document.createElement('a')
aEle.href = 'http://www.baidu.com'
可以直接通过.的方法只能够添加标签的默认属性 id class 等 aELe.setAttribute('属性名','属性值')
推荐使用这种方式添加 可以操作默认的和自定义的都可以 aEle.innerText = '新的文本内容'
可以对标签设置文本,会自动替换之前的所有文本 aEle.innerText
获取标签内的文本内容 divEle.appendChild(aEle)
将代码创建的标签插入到一个标签内,这样才生效有显示作用 divEle.removeChild(aEle)
通过父元素调用该方法删除标签 .innerHTML
获取标签内部所有的HTML标签加文本
.innerHTML = "<p>2</p>"
也可以重新设置标签 divEle.getAttribute("age")
获取标签的某个属性值

获取值操作

1.针对input 让用户输入的和用户选择的标签
先查找到获取用户数据的标签
let inputEle = document.getElementById('ID')
标签对象.value
//直接获取标签的值
inputEle.value
//就可以拿到了用户输入的数据 2.针对用户单选的操作
首先查找到用户选择的标签
let selectEle = document.getElementById('ID')
selectEle.value
//可以拿到用户选择的值 3.针对用户上传文件操作 获取用户上传的文件
let fileEle = document.getElementById('ID')
fileEle.files
//可以拿到用户上传的文件列表
fileEle.files[0]
//可以拿到真正的文件对象

标签CSS/Class样式操作

Class样式操作 首先利用查找标签 先拿到要操作的标签本身

divEle = document.getElementById('ID')

divEle.className
获取该标签内所有的 class类名 divEle.remove('class名称')
删除指定类 divEle.add('class名称')
添加一个样式类 divEle.contains('class名称')
判断该样式名是否存在 存在返回true,否则返回false divEle.toggle('class名称')
存在就删除,否则添加

css操作

divEle = document.getElementById('ID')

都需要先生成标签对象本身

通过js代码去改变css样式

语法结构:

标签对象.style.要改变的属性 = '属性值'

divEle.style.backgroundColor="red"
//通过标签对象修改 背景颜色样式 divEle.style.width ='100px'
//通过标签对象修改 背景颜色样式 divEle.style.left ='100px'
//通过标签对象修改 背景颜色样式

事件

有能力使 HTML 事件触发浏览器中的动作(action)

当用户点击某个 HTML 元素时启动一段 JavaScript

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

如何绑定事件

方式一:
直接在标签内部定义事件 <p onclick='function()'>快来点我</p>
<!--对该标签绑定了一个点击事件 点击此标签后 触发 function函数--> 方式二:
使用标签对象进行绑定事件
let inputNameEle = document.getElemenById('id')
/*通过id查找到标签*/ inputNameEle.onfocus = function(){
this.value = ''
}
//this自己本身的意思
//对这个对象 添加 获得焦点事件 获得焦点后触发 将自身的值改为 空

事件实操

判断账号密码输入

<p>name:
<input type="text" id="name">
<span style="color: red">11</span>
</p> <p>password:
<input type="text" id="password">
<span style="color: red">11</span>
</p> <button id="subtn">登录</button> <script>
let buttonEle = document.getElementById('subtn')
//找到这个登录这个按钮
buttonEle.onclick = function () {
//按钮绑定一个 单击事件 单击时运行
let nameEle = document.getElementById('name')
let passwordEle = document.getElementById('password')
if (nameEle.value == '123') {
//判断name对象的值是否是123
nameEle.nextElementSibling.innerText = '账号不能123'; //如果是 则把name对象的下一个标记内添加内容
if (passwordEle.value == '123') {
passwordEle.nextElementSibling.innerText = '密码不能123';}
}
}

JS中BOM与DOM操作的更多相关文章

  1. JS中BOM和DOM之间的关系

    一.Javascript组成JavaScript的实现包括以下3个部分:1.核心(ECMAScript):描述了JS的语法和基本对象.2.文档对象模型 (DOM):处理网页内容的方法和接口.3.浏览器 ...

  2. js中BOM与DOM的概念与区别

    1.BOM 浏览器对象模型 提供了独立于内容而与浏览器窗口进行交互的对象.描述了与浏览器进行交互的方法和接口,可以对浏览器窗口进行访问和操作,譬如可以弹出新的窗口,改变状态栏中的文本,对Cookie的 ...

  3. 前端js之BOM和DOM操作

    目录 引入 BOM操作 window对象 history对象 location对象(重点) 弹出框 定时器 计时器相关 DOM 查找标签 直接查找 间接查找 节点操作 创建节点及添加节点 删除节点 替 ...

  4. JS中BOM和DOM常用的事件

    总结:window对象 ● window.innerHeight - 浏览器窗口的内部高度 ● window.innerWidth - 浏览器窗口的内部宽度 ● window.open() - 打开新 ...

  5. JS中常见原生DOM操作API

    摘自:https://blog.csdn.net/hj7jay/article/details/53389522 几种对象 Node Node是一个接口,中文叫节点,很多类型的DOM元素都是继承于它, ...

  6. 前端javascript之BOM、DOM操作、事件

    BOM与DOM操作 BOM 浏览器对象模型>>>:使用js操作浏览器 DOM 文档对象模型>>>:使用js操作前端页面 window对象 所有浏览器都支持 wind ...

  7. [转]js中confirm实现执行操作前弹出确认框的方法

    原文地址:http://www.jb51.net/article/56986.htm 本文实例讲述了js中confirm实现执行操作前弹出确认框的方法.分享给大家供大家参考.具体实现方法如下: 现在在 ...

  8. JS中的函数、BOM和DOM操作

     一.JS中的函数 [关于注释] /** [文档注释]:开头两个*.写在函数上方,在调用函数时可以看到文档上方的描述信息. */   // 单行注释 /* 多行注释 */ 1.函数的声明及调用 (1) ...

  9. JS基础--函数与BOM、DOM操作、JS中的事件以及内置对象

       前   言 絮叨絮叨 这里是JS基础知识集中讲解的第三篇,也是最后一篇,三篇JS的基础,大多是知识的罗列,并没有涉及更难得东西,干货满满!看完这一篇后,相信许多正在像我一样正处于初级阶段的同学, ...

  10. js运算符、 流程控制 、函数、内置对象、BOM与DOM操作

    运算符 # 1.算术运算符 var x=10; var res1=x++; '先赋值后自增1' var res2=++x; '先自增1后赋值' # 2.比较运算符 弱等于:自动转换类型 '5' == ...

随机推荐

  1. 修改Windows10 命令终端cmd的编码为UTF-8 && IDEA控制台输出中文乱码

    临时修改 进入cmd窗口后,直接执行 chcp 65001 永久修改 在运行中输入regedit,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Pro ...

  2. 等保审核 --- MySQL密码复杂度--和连接错误超时等

    系统版本: Centos 7 MySQL版本: 5.7.19 架构: 主从架构 审计插件: validate_password.so(数据库自带5.6后版本都拥有此插件) 操作过程: 1). 安装va ...

  3. Beats:使用 Elastic Stack 记录 Python 应用日志

    文章转载自:https://elasticstack.blog.csdn.net/article/details/112259500 日志记录实际上是每个应用程序都必须具备的功能.无论你选择基于哪种技 ...

  4. #css#如何使用hover,实现父对子的样式改变?

    思路及做法: 鼠标移动到父盒子的时候, 里面所有的子盒子的样式都发生变化的, 只需要直接在hover后面加上空格, 并且加上子盒子的类名 ,里面再写其他样式 .父盒子的类名:hover .子盒子的类名 ...

  5. MiniWord .NET Word模板引擎,藉由Word模板和数据简单、快速生成文件。

    Github / Gitee QQ群(1群) : 813100564 / QQ群(2群) : 579033769 介绍 MiniWord .NET Word模板引擎,藉由Word模板和数据简单.快速生 ...

  6. Docker 部署 Kibana

    Docker 部署 Kibana 本篇主要介绍 使用 Docker 部署 kibana 用于操作 Elasticsearch 使用. 1. 前置准备 1.1 Elasticsearch 准备 可以先准 ...

  7. 基于docker安装phpmyadmin

    今天用到了phpadmin,要从头装的话,比较麻烦,所以就选择使用docker 安装 准备 任意Linux系统且已成功安装docker环境 安装phpmyAdmin 1. 拉取镜像 docker pu ...

  8. nginx 通过IP访问项目

    项目新需求,因为是小范围使用的网站,所以不打算配域名,直接通过IP访问当前项目. 环境: LNMP 一键集成环境 当前IP指向的目录 :/home/wwwroot/default/ 但是我的项目.需要 ...

  9. Vue学习之--------深入理解Vuex、原理详解、实战应用(2022/9/1)

    @ 目录 1.概念 2.何时使用? 3.搭建vuex环境 3.1 创建文件:src/store/index.js 3.2 在main.js中创建vm时传入store配置项 4.基本使用 4.1.初始化 ...

  10. 获取cpu的核数

    //获取cpu的核数 System.out.println(Runtime.getRuntime().availableProcessors());