BOM部分基础内容

BOM(Broswer Object Model)浏览器对象模型 ,主要用来获取或设置浏览器的属性、行为 ; 使JavaScript可以和浏览器进行交互 ; window 是 BOM 对象,而非 js 对象 ;

注:凡是window的属性和方法,均可以省略“window.”

  • 【1】常见框窗操作

1.警告框

window.alert("msg");

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">////警告框function testAlert(){var result = alert("这是一个警告框!");console.log(result);}</script>
</head>
<body>
<button onclick="testAlert();">testAlert</button></body>
</html>

2.确认框

window.confirm("msg");

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">//确认框function testConfirm(){var result = confirm("你确认要离开了吗?");if(result){alert("欢迎下次再来!")}else{alert("那你在逛逛吧!")}console.log(result);}</script>
</head>
<body>
<button onclick="testConfirm();">testConfirm</button>
</body>
</html>

3.询问框

window.prompt("msg","defaulvalue")

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">//询问框function testPrompt(){var result = window.prompt("请输入U盾密码","例如:123456");console.log(result);}</script>
</head>
<body>
<button onclick="testPrompt();">testPrompt</button>
</body>
</html>

  • 【2】常见页面操作

1.打开一个窗口

window.open()

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">var a  = 10;window.onload = function(){console.log(window);console.log("11111111111")}function testOpen(){var sonwindow = window.open("son.html","aaa","height=300,width=500,top=50,left=50,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no")//子窗口的window对象console.log(sonwindow);}function fatherSayHello(){alert("hello son!");}</script>
</head>
<body>
<button onclick="testOpen();">打开一个新窗口</button></body>
</html>

2.在子窗口中使用,表示父窗口的window对象

window.opener

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">function sayHello(){alert("hello world!");}//在子窗口中opener表示父窗口的window对象,可以利用该对象调用父窗口中的方法和属性function callFatherMethod(){window.opener.fatherSayHello();window.opener.a}function testClose(){window.close();}function testFatherClose(){window.opener.close();}</script>
</head>
<body>
<button onclick="callFatherMethod()">调用父窗口的方法</button>
<button onclick="testClose()">关闭本窗口</button>
<button onclick="testFatherClose()">关闭父窗口</button>
</body>
</html>

3.关闭当前窗口

window.close()

  • 【3】常见定时任务的操作

1.定时任务

var taskid = window.setTimeout(function,ms);

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">function setTime() {//            window.setTimeout("alert('hello!')",5000);window.setTimeout(sayHello, 5000);}var sayHello = function () {alert("你好!");}</script>
</head>
<body>
<button onclick="sayHello();">调用sayHello</button>
<button onclick="setTime();">调用setTime</button>
</body>
</html>

2.间隔执行任务

var taskid = window.setInteval(function,ms);

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">var sayHello = function () {alert("你好!");}window.onload = function(){window.setInterval(sayHello, 2000);}</script>
</head>
<body></body>
</html>

3.清除定时任务

window.clearTimeout(taskid);

4.清除间隔执行任务

window.clearInteval(taskid);

  • 【4】window的相关属性
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">function testScreen() {console.log(screen.width + "*" + screen.height)}function testBack(){window.history.back();}function testForward(){window.history.forward();}function testGo(){window.history.go(0)}function testLocation(){//            window.location.reload(); //刷新window.location.href = window.location.href; //刷新}function goBaidu(){window.location.href = "http://www.baidu.com";}function testNavigator(){console.log(window.navigator.userAgent)}</script>
</head>
<body><button onclick="testScreen();">screen属性</button><button onclick="testBack()">history-后退</button><button onclick="testForward()">history-前进</button><button onclick="testGo()">history-Go</button><button onclick="goBaidu()">百度</button><button onclick="testLocation()">刷新</button><button onclick="testNavigator()">用户代理</button>
</body>
</html>

DOM部分基础内容

DOM(Document Object Model)文档对象模型 , 主要用来获取或设置文档中标签的属性 ;

结点的概念:整个文档就是由层次不同的多个节点组成,可以说结点代表了全部内容。结点类型
1.元素结点
2.属性结点
3.文本结点 结点的注意点:
1.文本节点和属性结点都看作元素结点的子结点
2.我们一般所说的结点指的就是元素结点,将html标签看作是一个对象,并用“结点”称呼它
3.结点的关系有:父子关系、兄弟关系

  • 【1】获取元素结点的方式

1)直接获取

① document.getElementById()

② document.getElementsByName()

③ document.getElementsByTagName()

2)间接获取

父子关系

firstChild lastChild childNodes

子父关系

parentNode

兄弟关系

nextSibling previousSibling

示例:

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">function getEle() {var obj = document.getElementById("userid");}function getEle2() {// 获取的是一个数组var obj = document.getElementsByName("fav");console.log(obj)}function getEle3(){var obj = document.getElementsByTagName("input");console.log(obj);}function getEle4(){var father = document.getElementById("regForm");var sons = father.childNodes;console.log(sons[1]);console.log(father.firstChild);console.log(father.lastChild);}function getEle5(){var son = document.getElementById("userid");console.log(son.parentNode)}function getEle6(){var bro = document.getElementById("userid");console.log(bro.nextSibling.nextSibling.nextSibling);bro.previousSibling}</script>
</head>
<body><button onclick="getEle();">点我测试!</button>
<button onclick="getEle2();">点我测试2!</button>
<button onclick="getEle3();">点我测试3!</button>
<button onclick="getEle4();">点我测试4!</button>
<button onclick="getEle5();">点我测试5!</button>
<button onclick="getEle6();">点我测试6!</button><form id="regForm">用户名:<input id="userid" type="text" name="username"><br/>密码:<input type="password" name="password"><br/>昵称:<input id="nickid" type="text" name="nickname" value="大名鼎鼎" abcd="1234" ><br/>性别:男<input type="radio" name="gender" value="nan">&nbsp;&nbsp;女<input type="radio" name="gender" value="nv"><br/>爱好:狗<input type="checkbox" name="fav" value="dog">猫<input type="checkbox" name="fav" value="cat">羊驼<input type="checkbox" name="fav" value="yt"><br/><input type="submit" value="注册">
</form>
</body>
</html>

  • 【2】操作属性结点

1)通过对象“.”属性,来操作属性

优:可以动态获取用户修改的属性值

缺:不能获取自定义属性的值

2)getAttribute("key") setAttribute("key","value") removeAttribute("key")

优:可以获取自定义属性的值

缺:不能动态获取用户修改的属性值

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">function getField1(){var obj = document.getElementById("nickid");/*console.log(obj.type);obj.type = "password";*/var objval = obj.getAttribute("name");console.log(objval);
//            obj.setAttribute("abcd","5678");obj.removeAttribute("type");console.log(obj.value)console.log(obj.getAttribute("value"));}</script>
</head>
<body>
<button onclick="getField1();">属性测试1</button>
<form id="regForm">用户名:<input id="userid" type="text" name="username"><br/>密码:<input type="password" name="password"><br/>昵称:<input id="nickid" type="text" name="nickname" value="大名鼎鼎" abcd="1234" ><br/>性别:男<input type="radio" name="gender" value="nan">&nbsp;&nbsp;女<input type="radio" name="gender" value="nv"><br/>爱好:狗<input type="checkbox" name="fav" value="dog">猫<input type="checkbox" name="fav" value="cat">羊驼<input type="checkbox" name="fav" value="yt"><br/><input type="submit" value="注册">
</form>
</body>
</html>

  • 【3】处理文本结点

1) 通过对象.innerText 获取标签内部的文本信息

2) 通过对象.innerHTML 获取标签内部的HTML代码

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">function getText1(){var myDiv = document.getElementById("myDiv");console.log(myDiv.innerText);}function getText2(){var myDiv = document.getElementById("myDiv");console.log(myDiv.innerHTML);}function getText3(){var myDiv = document.getElementById("myDiv");myDiv.innerText = "<img src='1.jpg' />";}function getText4(){var myDiv = document.getElementById("myDiv");myDiv.innerHTML = "<img src='1.jpg' />";}</script>
</head>
<body>
<button onclick="getText1();">文本测试1</button>
<button onclick="getText2();">文本测试2</button>
<button onclick="getText3();">文本测试3</button>
<button onclick="getText4();">文本测试4</button>
<hr/>
<form id="regForm">用户名:<input id="userid" type="text" name="username"><br/>密码:<input type="password" name="password"><br/>昵称:<input id="nickid" type="text" name="nickname" value="大名鼎鼎" abcd="1234" ><br/>性别:男<input type="radio" name="gender" value="nan">&nbsp;&nbsp;女<input type="radio" name="gender" value="nv"><br/>爱好:狗<input type="checkbox" name="fav" value="dog">猫<input type="checkbox" name="fav" value="cat">羊驼<input type="checkbox" name="fav" value="yt"><br/><input type="submit" value="注册">
</form>
</body>
</html>

  • 【4】动态改变DOM结构

1)创建一个结点对象

document.createElement("标签名")

2)(父结点)追加子结点对象

fatherNode.appendChild(子结点对象)

3)(父结点)在指定结点前添加子结点

fatherNode.insertBefore(新结点对象,参考结点对象)

4)(父结点)替换旧的子结点对象

fatherNode.replaceChild(新结点对象,旧结点对象)

5)(父结点)删除旧子结点对象

fahterNode.removeChild(旧结点对象)

示例:

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><script type="application/javascript">function changeDom1() {var ipt = document.createElement("input");ipt.type = "text";}function changeDom2() {var father = document.getElementById("regForm");var ipt = document.createElement("input");ipt.type = "text";father.appendChild(ipt);}function changeDom3() {var father = document.getElementById("regForm");var refChild = document.getElementById("brid");var newChild = document.createElement("input");newChild.type = "text";father.insertBefore(newChild, refChild);}function changeDom4() {var father = document.getElementById("regForm");var refChild = document.getElementById("brid");var newChild = document.createElement("input");newChild.type = "text";father.replaceChild(newChild, refChild);}function changeDom5() {var father = document.getElementById("regForm");var refChild = document.getElementById("nickid");father.removeChild(refChild);}</script>
</head>
<body>
<button onclick="changeDom1();">创建结点对象</button>
<button onclick="changeDom2();">追加子结点对象</button>
<button onclick="changeDom3();">插入子结点对象</button>
<button onclick="changeDom4();">替换子结点对象</button>
<button onclick="changeDom5();">删除子结点对象</button>
<hr/>
<form id="regForm">用户名:<input id="userid" type="text" name="username"><br/>密码:<input type="password" name="password"><br/>昵称:<input id="nickid" type="text" name="nickname" value="大名鼎鼎" abcd="1234"><br id="brid"/>性别:男<input type="radio" name="gender" value="nan">&nbsp;&nbsp;女<input type="radio" name="gender" value="nv"><br/>爱好:狗<input type="checkbox" name="fav" value="dog">猫<input type="checkbox" name="fav" value="cat">羊驼<input type="checkbox" name="fav" value="yt"><br/><input type="submit" value="注册">
</form>
</body>
</html>

dom刷新局部元素_JavaScript中DOM和BOM基础相关推荐

  1. 在dom最前面插入_JavaScript中的DOM

    1. 关于DOM 文档对象模型(DocumentObject Model),是基于浏览器编程的一套API接口,W3C出台的推荐标准,每个浏览器都有一些细微的差别,其中以Mozilla(火狐)的浏览器最 ...

  2. canvas 实现图片局部模糊_JavaScript中的图片处理与合成(四)

    引言: 本系列现在构思成以下4个部分: 基础类型图片处理技术之缩放.裁剪与旋转(传送门): 基础类型图片处理技术之图片合成(传送门): 基础类型图片处理技术之文字合成(传送门): 算法类型图片处理技术 ...

  3. pythonxml解析拿到控件坐标_Python解析xml中dom元素的方法

    本文实例讲述了Python解析xml中dom元素的方法.共享给大家供大家参考.详细实现方法如下: 复制代码 代码如下: from xml.dom import minidom try: xmlfile ...

  4. js取iframe 上级页面_原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法...

    用原生js在父页面获取iframe子页面的元素,以及在子页面获取父页面元素,这是平时经常会用到的方法,这里写一个例子来总结下: 1.父页面(demo.html),在父页面修改子页面div的背景色为灰色 ...

  5. java dom 获得子元素_在JavaScript中删除DOM节点的所有子元素

    我将如何删除JavaScript中DOM节点的所有子元素? 说我有以下(丑陋的)HTML: hello world 我抓住了我想要的节点,如下所示: var myNode = document.get ...

  6. python中dom是什么意思_python--BOM和DOM

    一. 介绍 什么是BOM和DOM? 简要答案:BOM是浏览器对象模型,用来获取或设置浏览器的属性.行为,例如:新建窗口.获取屏幕分辨率.浏览器版本号等. DOM是文档对象模型,用来获取或设置文档中标签 ...

  7. HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次)

    HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次) 一.总结 一句话总结:目录就是测试题 1.document取得元素(get element)的方式有哪几种? 解答:四种,分别是id ...

  8. html中dom多会有影响吗,DOM操作造成的页面卡顿问题及解决

    相关目录 以下为我总结的其他性能优化点,欢迎参考,指点及吐槽 前言 界面上UI的更改都是通过DOM操作实现的,并不是通过传统的刷新页面实现 的.尽管DOM提供了丰富接口供外部调用,但DOM操作的代价很 ...

  9. html中dom和bom,区分BOM和DOM,区分window、document、html、body

    JavaScript三大组成部分 1. ECMAScript ECMAScript是JavaScript的语法标准,由ECMA(欧洲计算机厂家协会)制定的. 2. BOM BOM即浏览器对象模型(br ...

最新文章

  1. 直播APP开发:直播人数是否该有限制
  2. 谁说女生不能搞IT?一名女程序员的奋斗史
  3. 20080509 - System.ExecutionEngineException 在 DefaultDomain 中发生
  4. 精通Server Core系列之二 ---Server Core安装与基本配置
  5. Angular jasmine单元测试框架spec的运行时数据结构
  6. 查看Linux服务器运行级别命令,linux命令1、如何查看当前的Linux服务器的运行级别?...
  7. C语言实现Winsocket网络传输数据时乱码问题
  8. Ps 初学者教程,如何使用图层蒙版合成图像?
  9. 深入浅出GAMP算法(下):MMSE估计和AWGN场景
  10. idea翻译成中文_IDEA使用有道翻译插件
  11. Java 编程问题:三、使用日期和时间
  12. 支付宝登录java_支付宝登录java和android
  13. 1688电商API接口-无需多个 电商平台单独对接
  14. 解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题
  15. ADD R0,R1,R2 的理解
  16. 【Shell】awk命令--输出某列,列求和,列求平均值,列最大值,列去重复,取倒列,过滤行,匹配,不匹配,内置变量|定义分隔符|多个分隔符...
  17. 资源优化问题常见形式
  18. 16 16点阵c语言程序,用C语言编程16点阵字库
  19. MOOC大赛选手排名(10分)
  20. 2020-01-08 Oracle 数据库储存生僻字

热门文章

  1. vs2012与win7不兼容问题
  2. 【力扣网练习题】删除排序数组中的重复项
  3. UE中的自动化学习课程
  4. UE卡通风格游戏场景制作视频教程
  5. git 快速复制一个新项目
  6. shell脚本中判断上一个命令是否执行成功
  7. 《人类简史》八、融合统一(下)——宗教的法则、历史的混沌
  8. __bridge 使用注意
  9. LinkedHashMap and LinkedHashSet
  10. sqlserver导入excel的电话号码(身份证)变为科学计数解决方式