亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript中Dom模型和Bom模型舉例詳解

 更新時(shí)間:2025年06月16日 11:37:43   作者:GH小楊  
DOM和BOM是Web開(kāi)發(fā)中的兩個(gè)重要模型,這篇文章主要給大家介紹了關(guān)于JavaScript中Dom模型和Bom模型的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、Dom 模型和 Bom 模型概述

在 JavaScript 的世界里,Document Object Model(Dom)和 Browser Object Model(Bom)是極為重要的兩個(gè)概念。Dom 模型是針對(duì) HTML 文檔的對(duì)象模型,它將整個(gè) HTML 文檔視為一個(gè)由節(jié)點(diǎn)組成的樹(shù)狀結(jié)構(gòu),通過(guò) Dom,我們可以對(duì) HTML 頁(yè)面中的元素進(jìn)行訪(fǎng)問(wèn)、修改、添加和刪除等操作;而 Bom 模型則提供了一系列與瀏覽器窗口 交互的對(duì)象,用于控制瀏覽器的窗口、地址欄、歷史記錄等,實(shí)現(xiàn)與瀏覽器環(huán)境相關(guān)的功能。接下來(lái),我們將通過(guò)豐富的案例深入學(xué)習(xí)這兩個(gè)模型。

二、Dom 模型詳解

1.獲取 Dom 元素

  • 獲取 Dom 元素是操作 Dom 的基礎(chǔ),我們可以通過(guò)多種方式實(shí)現(xiàn)。

獲取方式

  • 通過(guò) id 獲取元素
  • 通過(guò)類(lèi)名獲取元素
  • 通過(guò)標(biāo)簽名獲取元素
  • 通過(guò)name屬性獲取元素

1.1 通過(guò) id 獲取元素

let myDiv = document.getElementById('myDiv');

1.2 通過(guò)類(lèi)名獲取元素

let boxes = document.getElementsByClassName('box');

1.3 通過(guò)標(biāo)簽名獲取元素

let paragraphs = document.getElementsByTagName('p');

1.4 通過(guò)name屬性獲取元素

let stus = document.getElementsByName('stu');

2.通過(guò)Dom對(duì)象操作屬性aa

//1.先獲取Dom對(duì)象
let p1 = document.getElementById("p1");
let img = document.getElementById("img");
let name = document.getElementById("name")
let aa = document.getElementById("aa");
let name1 = document.getElementById("name1");
let hobby1 = document.getElementById("hobby1");
let hobby2 = document.getElementById("hobby2");
let hobby3 = document.getElementById("hobby3");

// 直接修改樣式屬性
p1.style.fontSize = "20px";
p1.style.padding = "15px";
p1.style.borderRadius = "8px";
p1.style.display = "block" // block顯示 none 隱藏
// 更換圖片
img.src = "https://picsum.photos/seed/b/300/200";
img.alt = "新的示例圖片";
// 調(diào)整尺寸
img.style.width = "250px";
img.style.height = "180px";
img.style.objectFit = "cover";
// 添加額外屬性
aa.setAttribute("title", "點(diǎn)擊訪(fǎng)問(wèn)百度網(wǎng)站");
aa.classList.add("underline");
// 禁用/啟用輸入框
name1.disabled = true; // 禁用
name1.disabled = false; // 啟用
name1.removeAttribute("disabled") //移除屬性
// 修改輸入框值
name1.value = "李四";
// 操作復(fù)選框
hobby1.checked = true;
hobby2.checked = true;
hobby3.checked = true;

3. 通過(guò)Dom對(duì)象操作內(nèi)容

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>通過(guò)Dom對(duì)象操作內(nèi)容</title>
	</head>

	<body>
		<div id="p">hello world <span>你好</span></div>
            
		<select name="city" id="city1">
			<option value="chengdu">成都</option>
			<option value="jinan">濟(jì)南</option>
		</select>

		<input id="name" name="user" value="zhangsan" type="text">
	</body>
	<script>
		//1.獲取元素
		var p = document.getElementById("p")
		var name = document.getElementById("name")
		var city1 = document.getElementById("city1")
		//2.標(biāo)簽內(nèi)容操作
		// 2.1元素內(nèi)容獲取、修改
		// p.innerText = "java編程"
	
		// 2.2元素內(nèi)html內(nèi)容獲取、修改
		// p1.innerHTML = "<span style='color:red;'>jerry666</span>"
		// alert(p1.innerHTML)
		
		// 3.表單元素內(nèi)容獲取、修改
        //3.1輸入框
		name1.value = "張三"
		
		// 3.2下拉選項(xiàng)卡內(nèi)容
		// alert(city1.value)
	</script>
</html>

4遍歷Dom對(duì)象數(shù)組

使用 for 循環(huán)

let elements = document.getElementsByClassName('box');

// 標(biāo)準(zhǔn) for 循環(huán)
for (let i = 0; i < elements.length; i++) {
    elements[i].style.color = 'red';
}

5.其他獲取Dom對(duì)象的方法

  • document.documentElement - 獲取HTML根元素
  • document.documentElement 屬性返回文檔的根元素(HTML文檔中的<html>元素)。這是訪(fǎng)問(wèn)文檔最頂層元素的最直接方式。
  • document.body - 獲取BODY元素
  • document.body 屬性返回文檔的<body>元素。這是訪(fǎng)問(wèn)文檔主體內(nèi)容的最便捷方式
  • document.querySelector() - 通過(guò)選擇器獲取單個(gè)元素
  • querySelector() 方法返回文檔中匹配指定CSS選擇器的第一個(gè)元素。如果沒(méi)有找到匹配項(xiàng),則返回null。
  • document.querySelectorAll() - 通過(guò)選擇器獲取元素集合
    • querySelectorAll() 方法返回文檔中匹配指定CSS選擇器的所有元素的NodeList(節(jié)點(diǎn)列表)。如果沒(méi)有找到匹配項(xiàng),則返回空的NodeList。

三、Bom模型詳解

1.概述

  • 定義:BOM(Browser Object Model)是 JavaScript 操作瀏覽器的接口,提供了一系列對(duì)象用于控制瀏覽器窗口、地址欄、歷史記錄等。
  • 核心對(duì)象window(瀏覽器窗口)、location(地址欄)、history(歷史記錄)。

2.window對(duì)象:瀏覽器窗口控制

2.1 作用

  • 代表瀏覽器窗口,是 BOM 的頂層對(duì)象(document對(duì)象是其子對(duì)象)。
  • 可操作瀏覽器窗口的尺寸、彈出框、定時(shí)器等。

2.2 常用屬性與方法

  • 警告框alert(message)
window.alert("這是一個(gè)警告框!"); // 可省略window.
  • 確認(rèn)框confirm(message)(返回true/false
const isConfirmed = confirm("是否確認(rèn)刪除?");
if (isConfirmed) {
  console.log("用戶(hù)點(diǎn)擊了確定");
} else {
  console.log("用戶(hù)點(diǎn)擊了取消");
}
  • 提示框prompt(message, defaultText)(返回用戶(hù)輸入值或null
const name = prompt("請(qǐng)輸入姓名", "匿名");
if (name !== null) {
  console.log("你輸入的是:" + name);
}
  • 一次性定時(shí)器setTimeout(callback, delay)
// 3秒后彈出提示
setTimeout(() => {
  alert("定時(shí)器觸發(fā)!");
}, 3000);
  • 循環(huán)定時(shí)器setInterval(callback, delay)
let recount = function(){
  console.log('3秒倒計(jì)時(shí)...');
}
setInterval(recount,3000);

3.location對(duì)象:地址欄操作

3.1作用

  • 用于獲取和修改當(dāng)前頁(yè)面的 URL 地址,控制頁(yè)面跳轉(zhuǎn)。

3.2 常用方法

  • assign(url):跳轉(zhuǎn)到指定 URL(會(huì)記錄歷史記錄)

    location.assign("https://www.jd.com");
    
  • replace(url):替換當(dāng)前頁(yè)面(不記錄歷史記錄,無(wú)法回退)

    location.replace("https://www.taobao.com");
    
  • reload([force]):重新加載當(dāng)前頁(yè)面(force=true強(qiáng)制從服務(wù)器刷新)

    location.reload(); // 普通刷新
    location.reload(true); // 強(qiáng)制刷新
    

4.history對(duì)象:歷史記錄管理

4.1 作用

  • 操作瀏覽器的歷史記錄(前進(jìn)、后退、跳轉(zhuǎn)指定頁(yè)面)。

4.2 常用方法

方法說(shuō)明代碼示例
back()后退到上一個(gè)頁(yè)面(等價(jià)于瀏覽器左上角←按鈕)history.back();
forward()前進(jìn)到下一個(gè)頁(yè)面(等價(jià)于瀏覽器→按鈕)history.forward();
go(n)跳轉(zhuǎn)指定步數(shù): n=1前進(jìn) 1 步,n=-1后退 1 步,n=0刷新當(dāng)前頁(yè)history.go(-2);(后退 2 步)

案例:

  • 需求:實(shí)現(xiàn)五秒后跳轉(zhuǎn)的操作

html代碼

<div  style="font-size: 25px;"><span id = "time">5</span>秒鐘后跳轉(zhuǎn)...</div>

javaScript代碼

		// 獲取元素對(duì)象
		let time = document.getElementById("time")
		//定義一個(gè)變量,記住文章數(shù)據(jù),從而進(jìn)行計(jì)時(shí)的效果
		let num = 5
		let closeInter = setInterval(function (){
			time.innerText = num
			num--
			// 進(jìn)行判斷
			if(num < 0 ){
				clearInterval(closeInter)
			}
		},1000)

總結(jié) 

到此這篇關(guān)于JavaScript中Dom模型和Bom模型的文章就介紹到這了,更多相關(guān)JS Dom模型和Bom模型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論