javascript (六)DOM

来源:https://www.cnblogs.com/Ihaveseenyou/archive/2018/09/18/9665145.html
-Advertisement-
Play Games

學習後的總結: DOM:document object model 關於DOM的簡介:http://www.w3school.com.cn/htmldom/dom_intro.asp 本文說的是HTML DOM 的一些操作: DOM樹:DOM樹將HTML文檔體現為樹狀,DOM樹中有很多節點; DOM ...


學習後的總結:

DOM:document object model

關於DOM的簡介:http://www.w3school.com.cn/htmldom/dom_intro.asp

本文說的是HTML DOM 的一些操作:

DOM樹:DOM樹將HTML文檔體現為樹狀,DOM樹中有很多節點;

DOM通過對節點的操作來操作文檔,DOM節點分為12種類型:https://blog.csdn.net/zhuwq585/article/details/52955890

常用的三種類型:元素節點,屬性節點,文本節點;

  • 節點通用屬性:nodeName -> 節點的名字 、  nodeType -> 節點的類型 、 nodeValue -> 節點的值

通用屬性在不同節點的情況:https://blog.csdn.net/qingqingzijinxin/article/details/52244700

獲取節點操作:

  • childNodes :獲取某個節點的所有子節點
  • children : 獲取某個節點的所有元素子節點

它們的區別:https://blog.csdn.net/u013063153/article/details/52755991

  • nextSibling 獲取下一個節點。

存在差異性:主流瀏覽器:獲取下一個節點(可能是文本節點)IE 6 7 8 :中變成了獲取下一個元素節點

  • nextElementSibling  存在相容性:主流瀏覽器:獲取下一個元素節點, IE 6 7 8 :不存在這個屬性

根據他們的不同的情況,可以寫一個相容:

<div id="box">
    <p>111</p>
    <p>222</p>
    <p>333</p>
</div>
var oBox = document.getElementById('box');
var oP1 = oBox.children[0];
function nSibling( obj ){
        if ( obj.nextElementSibling ) //如果相容主流瀏覽器
       {
                nObj = obj.nextElementSibling;
       }else{
                nObj = obj.nextSibling;
       };

      //如果存在div下只有一個元素節點的時候,obj.nextElementSibling 返回undefined,這時候需要判斷是否仍有一個元素節點;
      return nObj.nodeType!==1?null:nObj;
};

 firstChild 第一個子節點

lastChild 最後一個子節點

firstElementChild 第一個元素節點

lastElementChild 最後一個元素節點

parentNode 父節點

offsetParent 定位父節點 :https://www.jb51.net/article/45555.htm ;

上述鏈接定位父節點分三種情況分析:1子節點父節點都沒有定位,2父節點有定位,3父節點的兄弟節點有定位。

 創建、插入節點

  • createElement( 標簽名 ) 創建元素節點
  • createTextNode( 字元串 ) 創建文本節點
  • appendChild(節點名) 添加子節點
  • insertBefore( args1, args2 ) 往某個子節點之前添加一個兄弟
  1. 第一個參數:要添加的節點
  2. 第二個參數:添加在誰之前

小案例:創建元素節點

<div id="box">
    <p id='goudan'>pppp</p>
</div>
var oBox = document.getElementById('box');
var oA = document.createElement('a');
oA.href = 'http://tanzhouedu.com';
oA.innerHTML = '我是添加的a標簽';
oA.className = 'dachui';
oA.id = 'aa';
oBox.appendChild( oA ); //createElement只是創建了個節點,還需要通過appendChild 來加到DOM樹上

 刪除子節點

  • removeChild(args)  
  1. args:要刪除的節點
<div id="box">
    <p id='p1'>蘋果</p>
    <p id='p2'>香蕉</p>
    <p id='p3'>梨子</p>
</div>
var oBox = document.getElementById('box');
var oP2 = document.getElementById('p2');
oBox.removeChild( oP2 );

 

完畢...

 


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

-Advertisement-
Play Games
更多相關文章
  • 【造輪子】是筆者學習和理解一些較複雜的代碼結構時的常用方法,它很慢,但是效果卻勝過你讀十幾篇相關的文章。為已知的API方法自行編寫實現,遇到自己無法復現的部分再有針對性地去查資料,最後當你再去學習官方代碼的時候,就會明白這樣做的價值,總有一天,你也將有能力寫出大師級的代碼。 一. 前端路由 現代前端 ...
  • function getbookinfo(pageNum,pageSize) { var datas='default'; var realUrl="/ssm/book/findALL/"+pageSize+"/"+pageNum+""; var realType="POST"; jQuery.aj... ...
  • 眾所周知,CSS樣式有三種類型:行內樣式、內部樣式和外部樣式,JavaScript獲取CSS樣式時分為兩種情況:行內樣式獲取法 和 非行內樣式獲取法 。 一、行內樣式獲取相對簡單,通過element.style.attr(元素.style.屬性)即可獲取,示例: 運行: 通過element.styl ...
  • var str = 'ProsperLee'; document.write(str.replace(//gmi, '')); // 去除HTML中的註釋 document.write(str.replace(/]+>/g,"")); // 去除HTML標簽 document.write(str.r... ...
  • 前言 交換數組元素位置是開發項目中經常用到的場景,總結下用過的幾種方式。 第三方變數 最基礎的方式,創建一個變數作為中轉。 splice方法 splice() 方法用於插入、刪除或替換數組的元素。如果是刪除時,會返回被刪除的元素數組。參數如下: 可使用splice方法來交換數組的位置,如下: arr ...
  • 1.jQuery語法 1.1 基礎語法:$(selector).action( ) 美元符號定義 jQuery 選擇符(selector)“查詢”和“查找” HTML 元素 jQuery 的 action() 執行對元素的操作 示例: $(this).hide() - 隱藏當前元素 $(".test ...
  • 最近通過 Vuejs 重構旅游頁面項目使用到 axios 獲取數據。對照官方文檔,簡要記錄一些 axios 的使用方法和特性,方便日後參考和查閱。 axios 基於 promise 用於瀏覽器和 node.js 的 http 客戶端 安裝 npm 安裝 通過 cdn 引入 用法 執行 GET 請求 ...
  • 在此,先做聲明,本篇僅是摘錄自互聯網,個人認為這篇文章講的很不錯,附於此地與大家共同欣賞。 position的四個屬性值:1.relative2.absolute3.fixed4.static下麵分別講述這四個屬性。<div id="parent"> <div id="sub1">sub1</div ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...