日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > HTML >内容正文

HTML

html中js方法中如何传递本元素对象,JS HTML DOM (文档对象模型)

發(fā)布時(shí)間:2023/12/10 HTML 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html中js方法中如何传递本元素对象,JS HTML DOM (文档对象模型) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

DOM簡(jiǎn)介

當(dāng)網(wǎng)頁(yè)加載時(shí),瀏覽器會(huì)創(chuàng)建頁(yè)面的文檔對(duì)象模型(DOM)。通過(guò)DOM,JS可以對(duì)HTML實(shí)現(xiàn)以下操作:

改變頁(yè)面中的所有HTML元素。

改變頁(yè)面中的所有HTML屬性。

改變頁(yè)面中的所有CSS樣式。

對(duì)頁(yè)面中的所有事件作出反應(yīng)。

DOM HTML

獲得HTML屬性的三種方式

通過(guò)id查找HTML元素

x=document.getElementById("intro");

document.write("

文本來(lái)自 id 為 intro 段落: " + x.innerHTML + "

");

通過(guò)標(biāo)簽名找到元素

//查找id為main的元素

var x=document.getElementById("main");

//查找該元素中所有

元素,返回的為一個(gè)數(shù)組

var y=x.getElementsByTagName("p");

document.write('id="main"元素中的第一個(gè)段落為:' + y[0].innerHTML);

通過(guò)類(lèi)名查找元素

x=document.getElementsByClassName("intro");

document.write("

文本來(lái)自 class 為 intro 段落: " + x[0].innerHTML + "

");

改變HTML輸出流

js能夠創(chuàng)建動(dòng)態(tài)的HTML內(nèi)容,比如動(dòng)態(tài)獲取當(dāng)前時(shí)間等

使用document.write()可用于直接向HTML輸出流寫(xiě)內(nèi)容

document.write(Date());

改變HTML內(nèi)容

修改HTML內(nèi)容最簡(jiǎn)單的方法是使用innerHTML屬性

document.getElementById("p1").innerHTML="新文本!";

改變HTML屬性

改變HTML屬性可以套用以下模板

document.getElementById(id).attribute=新屬性值

使用實(shí)例如下

//改變img的src屬性

document.getElementById("image").src="landscape.jpg";

改變HTML樣式

改變HTML樣式可以使用以下語(yǔ)法

document.getElementById(id).style.property=新樣式

使用實(shí)例

document.getElementById("p2").style.color="blue";

document.getElementById("p2").style.fontFamily="Arial";

document.getElementById("p2").style.fontSize="larger";

HTML事件

HTML事件類(lèi)型

HTML有諸如以下幾種事件類(lèi)型

當(dāng)用戶(hù)點(diǎn)擊鼠標(biāo)時(shí)

當(dāng)網(wǎng)頁(yè)已加載時(shí)

當(dāng)圖像已加載時(shí)

當(dāng)鼠標(biāo)移動(dòng)到元素上時(shí)

當(dāng)輸入字段被改變時(shí)

當(dāng)提交HTML表單時(shí)

當(dāng)用戶(hù)觸發(fā)按鍵時(shí)

...

..

HTML事件屬性

如需監(jiān)聽(tīng)HTML元素的事件,可以使用事件屬性進(jìn)行分配

//監(jiān)聽(tīng)button元素的onClick事件

點(diǎn)這里

使用HTML DOM來(lái)分配事件

HTML DOM允許使用js來(lái)向HTML元素分配事件

//向button元素分配onClick事件

//并將displayDate函數(shù)分配給id=“myBtn”的HTML元素

document.getElementById("myBtn").οnclick=function(){displayDate()};

onload和onunload事件

onload和onunload會(huì)在用戶(hù)進(jìn)入或離開(kāi)頁(yè)面時(shí)被觸發(fā),可用于檢測(cè)訪問(wèn)者的瀏覽器類(lèi)型和瀏覽器版本,并基于這些信息來(lái)加載網(wǎng)頁(yè)的正確版本。也可用于處理cookie

//

onchange事件

onchange事件常結(jié)合對(duì)輸入字段的驗(yàn)證來(lái)使用

//當(dāng)用戶(hù)改變輸入字段的內(nèi)容時(shí),調(diào)用upperCase()函數(shù)

onmouseover和onmouseout事件

onmouseover和onmouseout事件可用于在用戶(hù)的鼠標(biāo)移至HTML元素上方或移出元素時(shí)出發(fā)函數(shù)

Mouse Over Me

function mOver(obj){

obj.innerHTML="Thank You"

}

function mOut(obj){

obj.innerHTML="Mouse Over Me"

}

onmouseDown、onmouseup、以及onclick事件

這三個(gè)事件構(gòu)成了鼠標(biāo)點(diǎn)擊事件的所有部分、當(dāng)點(diǎn)擊鼠標(biāo)按鈕時(shí),會(huì)出發(fā)onmousedown事件,當(dāng)釋放鼠標(biāo)時(shí)會(huì)觸發(fā)onmouseup事件,最后,當(dāng)完成鼠標(biāo)點(diǎn)擊時(shí),會(huì)觸發(fā)onclick事件。

DOM EventListener

addEventListener()方法

用處

1. 用于向元素添加事件監(jiān)聽(tīng)

2. 一個(gè)元素可以添加多個(gè)監(jiān)聽(tīng)事件

3. 可以向同個(gè)元素添加多個(gè)同類(lèi)型的監(jiān)聽(tīng)事件,比如:兩個(gè)onclick事件。

4. 可以向任何DOM對(duì)象添加事件監(jiān)聽(tīng),不僅僅是HTML元素,比如:window對(duì)象。

5. 可以更簡(jiǎn)單的控制事件(冒泡與捕獲)

6. 使用addEventListener()方法時(shí),javascript從HTML標(biāo)記中分離開(kāi)來(lái),可讀性更強(qiáng),在沒(méi)有控制HTML標(biāo)記時(shí)也可以添加事件監(jiān)聽(tīng)。

7. 可以使用removeEventListener()方法來(lái)移除事件的監(jiān)聽(tīng)。

語(yǔ)法

//第一個(gè)參數(shù)是事件類(lèi)型(如click或mousedown)

//第二個(gè)參數(shù)是事件觸發(fā)后調(diào)用的函數(shù)

//第三個(gè)參數(shù)是布爾值,用于描述事件是冒泡還是捕獲。該參數(shù)是可選的,默認(rèn)為false,冒泡傳遞

element.addEventListener(event, function, useCapture);

實(shí)例

//當(dāng)用戶(hù)點(diǎn)擊按鈕時(shí)觸發(fā)監(jiān)聽(tīng)事件

document.getElementById("myBtn").addEventListener("click", displayDate);

向原元素添加事件句柄

實(shí)例1: 當(dāng)用戶(hù)點(diǎn)擊元素時(shí)彈出“hello world”

element.addEventListener("click", function(){ alert("Hello World!"); });

實(shí)例2: 使用函數(shù)名,來(lái)引用外部函數(shù)

//當(dāng)用戶(hù)點(diǎn)擊元素時(shí)彈出helloworld

element.addEventListener("click", myFunction);

function myFunction() {

alert ("Hello World!");

}

向同一元素添加多個(gè)事件句柄

向同個(gè)元素添加多個(gè)同種類(lèi)型事件,注: 不會(huì)覆蓋已存在的事件

element.addEventListener("click", myFunction);

element.addEventListener("click", mySecondFunction);

向同個(gè)元素添加多個(gè)不同類(lèi)型事件

element.addEventListener("mouseover", myFunction);

element.addEventListener("click", mySecondFunction);

element.addEventListener("mouseout", myThirdFunction);

向window對(duì)象添加事件句柄

addEventListener()方法允許向HTML DOM對(duì)象添加事件監(jiān)聽(tīng)。HTML DOM對(duì)象如: HTML元素,HTML文檔,window對(duì)象,或者其他支出的事件對(duì)象如: xmlHttpRequest對(duì)象。

//當(dāng)用戶(hù)重置窗口大小時(shí)添加事件監(jiān)聽(tīng)

window.addEventListener("resize", function(){

document.getElementById("demo").innerHTML = sometext;

});

傳遞參數(shù)

當(dāng)傳遞參數(shù)時(shí),使用“匿名函數(shù)”調(diào)用帶參數(shù)的函數(shù)

element.addEventListener("click", function(){ myFunction(p1, p2); });

事件的冒泡傳遞和捕獲傳遞

事件傳遞有兩種方式: 冒泡或捕獲,這兩種事件傳遞定義了元素事件觸發(fā)的順序。

比如: p元素插入到 div 元素中,用戶(hù)點(diǎn)擊 p 元素, 哪個(gè)元素的 "click" 事件先被觸發(fā)呢?

在冒泡傳遞中內(nèi)部事件會(huì)先被觸發(fā),然后再觸發(fā)外部元素。

在捕獲傳遞中外部元素事件會(huì)先被觸發(fā),然后才會(huì)觸發(fā)內(nèi)部元素的事件

removeEventListener()方法

removeEventListener()方法移除由addEventListener()方法添加事件的句柄。

element.removeEventListener("mousemove", myFunction);

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的html中js方法中如何传递本元素对象,JS HTML DOM (文档对象模型)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。