HTML DOM 知識點整理(一)—— Document對象

来源:https://www.cnblogs.com/bbcfive/archive/2018/11/29/10041125.html
-Advertisement-
Play Games

一、DOM對象 DOM對象整體包括: HTML DOM Document對象 HTML DOM 元素對象 HTML DOM 屬性對象 HTML DOM 事件對象 HTML DOM Console 對象 CSS Style Declaration 對象 二、 Document對象詳解 HTML DOM ...


一、DOM對象

DOM對象整體包括:

  • HTML DOM Document對象
  • HTML DOM 元素對象
  • HTML DOM 屬性對象
  • HTML DOM 事件對象
  • HTML DOM Console 對象
  • CSS Style Declaration 對象

二、 Document對象詳解

HTML DOM Document對象

document對象是HTML文檔的根節點,可以使我們從腳本中對HTML頁面中的所有元素進行訪問。

提示:Document 對象是 Window 對象的一部分,可通過 window.document 屬性對其進行訪問。

三、Document對象的屬性和方法:

1.document.activeElement 屬性

var x = document.activeElement.tagName;
console.log(x); 
//BUTTON

提示: 為元素設置焦點,可以使用 element.focus() 方法。

function getfocus() { 
    document.getElementById("myAnchor").focus();
}

function losefocus() {
    document.getElementById("myAnchor").blur();
}

提示:可以使用 document.hasFocus() 方法來查看當前元素是否獲取焦點。hasFocus() 方法返回布爾值,用於檢測文檔(或文檔內的任一元素)是否獲取焦點。

2.document.addEventListener(eventfunctionuseCapture) 方法

參數值:

參數 描述
event

必需。描述事件名稱的字元串。

註意:不要使用“on”首碼。例如,使用“click”來取代“onclick”。

function 必需。描述了事件觸發後執行的函數。
useCapture

可選。布爾值,指定事件是否在捕獲或冒泡階段執行。

可能值:

  • true - 事件句柄在捕獲階段執行
  • false - 預設。事件句柄在冒泡階段執行

 

document.addEventListener() 方法用於向文檔添加事件句柄,因為是2級DOM,因此可以多次添加。

document.addEventListener("mouseover", myFunction);
document.addEventListener("click", someOtherFunction);
document.addEventListener("mouseout", someOtherFunction);

跨瀏覽器解決辦法:

如果瀏覽器不支持 addEventListener() 方法, 你可以使用 attachEvent() 方法替代。

if (document.addEventListener) {                //所有主流瀏覽器,除了 IE 8 及更早 IE版本
    document.addEventListener("click", myFunction);
} else if (document.attachEvent) {             // IE 8 及更早 IE 版本
    document.attachEvent("onclick", myFunction);
}

提示: 可以使用 document.removeEventListener() 方法來移除 addEventListener() 方法添加的事件句柄。

提示:使用 element.addEventListener() 方法為指定元素添加事件句柄。

// 向 <div> 元素添加事件句柄
document.getElementById("myDIV").addEventListener("mousemove", myFunction);

// 移除 <div> 元素的事件句柄
document.getElementById("myDIV").removeEventListener("mousemove", myFunction);

3.document.adoptNode(node) 方法 (3級DOM元素)

參數類型描述
node  Node 對象 必須。另外一個文檔的節點,可以是任何節點類型。

adoptNode() 方法用於從另外一個文檔中獲取一個節點。

節點可以是任何節點類型。

var frame = document.getElementsByTagName("IFRAME")[0]
var h = frame.contentWindow.document.getElementsByTagName("H1")[0];
var x = document.adoptNode(h);

註意: 節點下的所有子節點都會獲取到。

註意: 節點及其子節點會再源文檔中刪除。

提示: 使用 document.importNode() 方法來拷貝節點,但原文檔中的節點不刪除。.

提示: 使用 element.cloneNode() 方法來拷貝當前文檔的節點,且節點不會被刪除。

 ——  待續  ——


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用jQuery增加或刪除元素(內容):一、jQuery添加元素或內容:1,append() 方法:在被選元素的結尾插入元素或內容 2,prepend() 方法:被選元素的開頭插入元素或內容。 3,after() 方法:在被選元素之後插入內容。 4,before() 方法:在被選元素之前插入內容。註 ...
  • 百度智能小程式自定義彈窗組件wcPop|百度小程式model對話框|智能小程式彈窗界面模板 最近百度也推出了自己的智能小程式,如是就趕緊去試了下,官方提供的api還不是狠完整。而且官方提供的彈窗組件也不能滿足一些複雜展示場景,所以就自己動手封裝了個智能小程式彈窗wcPop自定義模板插件。 百度智能小 ...
  • 支付寶小程式自定義彈窗組件wcPop|小程式自定義對話框|actionSheet彈窗模板 支付寶小程式官方提供的alert提示框、dialog對話框、model彈窗功能比較有限,有些都不能隨意自定義修改的。如是自己就捯飭著封裝了個支付寶小程式自定義彈窗插件wcPop,多種展示場景,隨意修改調用。 自 ...
  • With Custom Elements, web developers can create new HTML tags, beef-up existing HTML tags, or extend the components other developers have authored. ...
  • 1. 2. 3.(類似法2) ...
  • js如何判斷值是否是數字 1. isNaN()方法2. 正則表達式var re = /^[0-9]+.?[0-9]*$/; //判斷字元串是否為數字 //判斷正整數 /^[1-9]+[0-9]*]*$/3. 利用parseFloat的返回值 isNaN(inputData)不能判斷空串或一個空格;如 ...
  • 在掘金上看到了一位大佬發了一篇很詳細的面試記錄文章 "《一年半經驗,百度、有贊、阿裡面試總結》" ,為了查漏補缺,抽空就詳細做了下。( 估計只有我這麼無聊了哈哈哈 ) 有給出的或者有些不完善的答案,也儘力給出/完善了(可能有錯,大家自行辨別)。有些很困難的題目(例如實現 ),附帶相關鏈接(懶癌患者福 ...
  • 1. Virtual DOM是什麼 Virtual DOM,即虛擬DOM樹。瀏覽器在解析文件時,會將 文檔轉換為 對象,在瀏覽器環境中運行的腳本文件都可以獲取到它,通過操作 對象暴露的介面可以直接操作頁面上的DOM節點。但是DOM讀寫是非常耗性能的,很容易觸發不必要的重繪和重排,為了更好地處理DOM ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...