✿✿✿JavaScript --- BOM、DOM对象

目 

一、BOM浏览器对象模型

1.Window窗口对象

(1)与弹出有关的方法

(2)与定时器有关的方法

(3)与打开关闭有关的方法

(4) 获取其他对象的属性

2.Location地址栏对象 

3.History历史记录对象

二、DOM文档对象模型

1.Document文档对象

(1)获取Element对象

(2)创建其他对象

 2.标签对象的属性

创建删除DOM元素案例:


一、BOM浏览器对象模型

BOM(Browser Object Model) 浏览器对象模型。也就是将浏览器的各个组成部分封装为对象。主要特点就是BOM对象不能由我们程序员自己创建,当文档加载进内存,浏览器自动创建。BOM中常见的对象如下:

1.Window窗口对象

使用方式: window.方法名();   或   方法名();( window 可以省略)。 该对象常用到的方法如下:

(1)与弹出有关的方法

  • alert()                                                 显示带有一段消息和一个确认按钮的警告框。
  • confirm()                                            显示带有一段消息以及确认按钮和取消按钮的对话框。 
  • prompt()                                             显示可提示用户输入的对话框。 

(2)与定时器有关的方法

  • setInterval()                                        按照指定的周期(以毫秒计)来调用函数或计算表达式。 循环执行
  • clearInterval()                                     取消由 setInterval() 设置的 timeout。  
  • setTimeout()                                       在指定的毫秒数后调用函数或计算表达式。 只执行一次
  • clearTimeout()                                    取消由 setTimeout() 方法设置的 timeout。 

(3)与打开关闭有关的方法

  • open()                                                 打开新窗口。参数:打开目标的URL。返回值:返回新打开窗口的window引用
  • close()                                                 关闭窗口。注:谁调用我 , 我关谁

(4) 获取其他对象的属性

  • history                                                 对 History 对象的只读引用。请参数 History 对象。 
  • location                                               用于窗口或框架的 Location 对象。请参阅 Location 对象。 
  • Navigator                                            对 Navigator 对象的只读引用。请参数 Navigator 对象。 
  • Screen                                                对 Screen 对象的只读引用。请参数 Screen 对象。 
  • document                                            对 Document 对象的只读引用。请参阅 Document 对象。 

2.Location地址栏对象 

获取方式:可以用window对象中的属性获取。常用的属性 ---->  href:设置或获取当前的URL。

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			function intoPage() {
				//window.open()
				if (confirm("你即将跳转到外部网站,确认吗?")) {
					//window.open()
					location.href = "http://www.163.com"
				}
			}
		</script>
	</head>
	<body>
		<a href="http://www.163.com">进入网易</a>
		<button onclick="intoPage()">进入页面</button>
		<a href="index.html?username=zhangsan&password=123456">进入首页</a>
		<button onclick="location.reload()">刷新页面</button>

	</body>
</html>

3.History历史记录对象

获取方式:可以用window对象中的属性获取。 常用的方法:go();注:1表示前进,-1表示后退。

补:Navigator浏览器对象。以及Screen显示器屏幕。基本不用仅作了解!!Screen的属性如下:

  • availHeight                                            获取系统屏幕的工作区域高度,排除 Microsoft Windows 任务栏。     
  • availWidth                                             获取系统屏幕的工作区域宽度,排除 Windows 任务栏。     
  • height                                                    获取屏幕的垂直分辨率。 
  • width                                                      获取屏幕的水平分辨率。 
<html>
	<head>
		<meta charset="utf-8">
		<title></title>

	</head>
	<body>
		<a href="A.html">进入A页面</a>
		<a href="javascript:void(history.go(1))">前进</a>
	</body>
</html>

二、DOM文档对象模型

DOM(Document Object Model) 文档对象模型,将标记语言文档的各个组成部分封装为对象。

1.Document文档对象

用window对象中的属性获取,window.document。常用的属性:

  • body                                                        可以获取body标签对象
  • title                                                          属性获取文档标题
  • lastModified                                             获取文档最后一次修改时间
  • URL                                                         获取地址栏中的地址

常用的方法如下:

(1)获取Element对象

  • getElementById()                                    通过id属性值获取唯一的元素
  • getElementsByTagName()                      通过标签名称获取元素对象数组
  • getElementsByName()                            通过name属性值获取元素对象数组
  • getElementsByClassName()                   通过class属性值获取元素对象数组                
  • querySelector()                                        根据css的选择器语法来选择的,获取的是第一个是个单数
  • querySelectorAll(".myclass")                    根据css的选择器语法来选择的,获取的是多个

(2)创建其他对象

  • createElement                                           创建元素对象
  • createAttribute                                           创建属性对象
  • createComment                                         创建注释对象
  • createTextNode                                         创建文本对象
  • setAttribute()                                              给属性对象设置值
  • remove()                                                    删除自己
  • removeChild()                                            移除子元素
  • removeAttribute("align")                             根据属性名来移除标签上的属性
  • removeAttributeNode(attr)                          移除属性对象。传入的是一个属性对象
  • replaceChild(h4,h)                                      站在父元素的角度,替换子元素,值1:新的元素,值2:是要替换的旧元素。
  • insertBefore(h5,h1)                                     站在父标签的角度,在这个h1标签对象的前面插入h5这个标签对象。
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body id="bd">
		<h1 id="myh">aaa</h1>
		<h2 class="myclass">000000001</h2>
		<h2 class="myclass">000000002</h2>
		<h2 class="myclass">000000003</h2>
		<h2 class="myclass">000000004</h2>
		<h2 class="myclass">000000005</h2>
		<h2 class="myclass">000000006</h2>
		<h2 class="myclass">000000007</h2>
		<h2 class="myclass">000000008</h2>
		<h2 class="myclass">000000009</h2>
		<h2 class="myclass">000000010</h2>

		<h3>0000001</h3>
		<h3>0000002</h3>
		<h3>0000003</h3>
		<h3>0000004</h3>
		<h3>0000005</h3>
		<h3>0000006</h3>
		<h3>0000007</h3>
		<h3>0000008</h3>
		<h3>0000009</h3>
		<h3>0000010</h3>
	</body>

	<script>
		/*  获取Element对象 */
		var myh = document.getElementById("myh");
		var bd = document.getElementById("bd");
		//根据类名获取多个标签对象数组,这个数组是伪数组,
		var eleArr = document.getElementsByClassName("myclass");
		for (let i = 0; i < eleArr.length; i++) {
			if (i % 2 == 0) {
				eleArr[i].style.background = "yellow";
			} else {
				eleArr[i].style.background = "red";
			}
		}

		var eleArr2 = document.getElementsByTagName("h3");
		for (let i = 0; i < eleArr2.length; i++) {
			if (i % 2 == 0) {
				eleArr2[i].style.background = "pink";
			} else {
				eleArr2[i].style.background = "blue";
			}
		}
	</script>
</html>

 2.标签对象的属性

  • nnerHTML属性                                            获取或设置 元素的 子内容
  • innerTEXT属性                                            获取标签之间的文本内容
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input type="text" name="username" />

		<input type="checkbox" name="hobby" />学习
		<input type="checkbox" name="hobby" />游戏
		<input type="checkbox" name="hobby" />娱乐
		<input type="checkbox" name="hobby" />音乐

		<h1 class="hehe">0000001</h1>
		<h1 class="hehe">0000002</h1>
		<h1 class="hehe">0000003</h1>
		<h1 class="hehe">0000004</h1>
		<h1 class="hehe">0000005</h1>
		<h1 class="hehe">0000006</h1>
		<h1 class="hehe">0000007</h1>
		<h1 class="hehe">0000008</h1>
		<h1 class="hehe">0000009</h1>
		<h1 class="hehe">0000010</h1>

		<div>
			<div>
				<h3><a href="#">hehhe</a></h3>
			</div>
		</div>
	</body>

	<script>
		//注意返回的是数组
		//针对表单项标签,有个特定方法 getElementsByName()
		var eleArr = document.getElementsByName("username");
		var ele = eleArr[0];
		alert(ele);

		var v = document.querySelector(".hehe");
		v.style.color = "red";

		var arr = document.querySelectorAll(".hehe");
		alert(arr.length);

		var aEle = document.querySelector("div>div>h3>a");
		aEle.style.fontSize = "50px";
	</script>
</html>

创建删除DOM元素案例:

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	</body>
	<script>
		//创建标签对象
		var myDiv = document.createElement("div");
		var bd = document.body;
		//给父元素添加子元素
		bd.appendChild(myDiv);
		//创建文本对象 
		var text = document.createTextNode("这是一段文本");
		myDiv.appendChild(text);
		//创建属性对象
		var attr = document.createAttribute("style");
		attr.value = "color:red;font-size:30px";
		//给标签设置属性
		myDiv.setAttributeNode(attr);
		//创建注释对象
		var zhshi = document.createComment("这是一段注释");
		bd.append(zhshi);

		var myH1 = document.createElement("h1");
		bd.appendChild(myH1);
		var text2 = document.createTextNode("这是一段文本222222");
		myH1.appendChild(text2);
		//给标签设置属性
		myH1.setAttribute("id", "myh1");
		myH1.setAttribute("style", "color:blue;background:yellow");

		//删除元素
		//myH1.remove(); 站在自身的角度来删除自己
		//bd.removeChild(myDiv);

		//删除属性
		//myH1.removeAttributeNode(属性对象) //
		myH1.removeAttribute("id");
		//站在父元素的角度,替换子元素,值1:新的元素,值2:是要替换的旧元素。
		var myH2 = document.createElement("h2");
		bd.replaceChild(myH2, myH1);
		//站在父标签的角度,在这个h1标签对象的前面插入h5这个标签对象。
		var myH3 = document.createElement("h3");
		bd.insertBefore(myH3, myDiv);
	</script>
</html>

(小编也在努力学习更多哟!以后再慢慢分享的啦!)

希望对友友们有所帮助!!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

naoguaziteng

谢谢友友的打赏!一起努力吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值