国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

我與DOM的第一次邂逅

yanbingyun1990 / 2195人閱讀

摘要:是操作網頁的接口,全稱為文檔對象模型。它的作用是將網頁轉為一個對象,從而可以用腳本進行各種操作節點的最小組成單位叫做節點。

DOM

DOM 是 JavaScript 操作網頁的接口,全稱為“文檔對象模型”(Document Object Model)。它的作用是將網頁轉為一個 JavaScript 對象,從而可以用腳本進行各種操作

節點

DOM 的最小組成單位叫做節點(node)。文檔的樹形結構(DOM 樹),就是由各種不同類型的節點組成

節點樹

一個文檔的所有節點,按照所在的層級,類似樹狀結構 它有一個頂層節點,下一層都是頂層節點的子節點,然后子節點又有自己的子節點

除了根節點,其他節點都有三種層級關系:

父節點關系(parentNode):直接的那個上級節點

子節點關系(childNodes):直接的下級節點

同級節點關系(sibling):擁有同一個父節點的節點

Domcument對象

Document對象提供了訪問和更新HTML頁面內容的屬性和方法
Document對象作為DOM訪問和更新HTML頁面內容的入口 可以定位HTML頁面中的元素 或者創建新的元素

測試Document對象
console.log(document)    //#document   頁面上的內容
Document對象的屬性和方法

Document對象的屬性和方法被定義在prototype原型中

console.log(Document.prototype)   //一個包含很多屬性和方法的對象
繼承關系

Document對象繼承于Node對象 Node對象繼承于EventTarget對象

console.log(Document.prototype instanceof Node)  //true
console.log(Node.prototype instanceof EventTarget) //true
console.log(Document.prototype instanceof EventTarget) //true
定位頁面元素的方法

DOM無論是使用的還是得到的都應該是對象

getElementById()方法

    var buttonElement =document.getElementById("btn");
    console.log(buttonElement instanceof Object)  //true

getElementsByName()方法
通過name屬性獲取
由于name屬性不唯一 得到的結果可能是多個 所以為Elements
因為得到的是一個集合 如果想取到對應的值 需要添加索引值

 
 var btn=document.getElementsByName("btn")[0]

getElementsByTagName
通過TagName屬性獲取 與name屬性相同

 
 var btn=document.getElementsByTagName("button")[0]

getElementsByClassName
通過ClassName屬性獲取 與name屬性相同 存在兼容問題

 
 var btn=document.getElementsByClassName("btn")[0]

querySelector()方法
通過CSS選擇器定位第一個匹配的元素
接收參數 表示選擇器 可以包含一個或多個CSS選擇器 多個用逗號分隔

  
var btn =document.getElementById("btn");
console.log(btn.nodeName)   //BUTTON

不同的節點類型 nodeName返回的節點名稱不同 :

元素節點(Element) ---> 元素節點的節點名

屬性節點(Attribute) ---> 屬性節點的屬性名

文本節點(Text) ---> #text

文檔節點(Document) ---> #document

nodeType 用于獲取指定節點的節點類型

var btn =document.getElementById("btn");
console.log(btn.nodeType)  //1

不同的節點類型 nodeType返回的節點名稱也不同:

元素節點(Element) ---> 1

屬性節點(Attribute) ---> 2

文本節點(Text) ---> 3

文檔節點(Document) ---> 9

nodeValue用于獲取指定節點的值

var btn =document.getElementById("btn");
console.log(btn.nodeValue);   // null

不同的節點類型 nodeValue返回的節點類型也不同:

元素節點(Element) ---> null

屬性節點(Attribute) ---> 屬性節點的屬性值

文本節點(Text) ---> 文本節點的內容

文檔節點(Document) ---> null

獲取節點 獲取父節點

通過指定元素查找它的父節點 可以用Node對象的parentNode屬性實現

  • Xayah
  • Lucian
  • Vayne
var abm =document.getElementById("abm"); var parent =abm.parentNode; console.log(parent); //
    ...

通過parentElement屬性 獲取其父元素節點

console.log(abm.parentElement)  //
    ...

區別:

父節點(parentNode) 并沒有指定節點的父節點是哪一個類型的節點

父元素節點(parentElement) 指定了節點的父節點一定是元素節點

獲取html的父節點 為document文檔節點
但document文檔節點并不是元素節點

var html=document.documentElement;
console.log(html.parentNode)    //文檔節點
console.log(html.parentElement)  //null
獲取子節點

可以通過Node對象的childNodes firstChild lastChild 屬性實現

獲取所有子節點
childNodes用于獲取指定節點的所有子節點
返回一個只讀的NodeList對象 并且是一個動態的NodeList對象

  • Xayah
  • Lucian
  • Vayne
var parent =document.getElementById("parent"); var children=parent.childNodes; console.log(children) //NodeList(7)?[text, li, text, li#abm, text, li, text]

獲取第一個子節點
Node對象提供的firstChild屬性用于獲取指定節點的第一個子節點
如果當前節點無子節點 則返回null

  • Xayah
  • Lucian
  • Vayne
var parent =document.getElementById("parent"); console.log(parent.firstChild) //#text 第一個li前的換行

獲取最后一個子節點
Node對象提供的lastChild屬性用于獲取指定節點的最后一個子節點

  • Xayah
  • Lucian
  • Vayne
var parent =document.getElementById("parent"); console.log(parent.lastChild) //#text 最后一個li后的換行
獲取相鄰兄弟節點

previousSibling 獲取指定節點的上一個兄弟節點

  • Xayah
  • Lucian
  • Vayne
var abm=document.getElementById("abm"); console.log(abm.previousSibling) //
  • Xayah
  • nextSibling 獲取指定節點的下一個兄弟節點

    • Xayah
    • Lucian
    • Vayne
    var abm=document.getElementById("abm"); console.log(abm.nextSibling) //
  • Vayne
  • 文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

    轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97081.html

    相關文章

    • 回望2017:一個前端從業者砥礪前行一年

      摘要:走過了這一年,公眾號的名稱前前后后改了三次,最后定格為閏土大叔。均價,這價格絕對屬于太原市最便宜的樓盤之一了。據售樓部的朋友說,未來兩年太原的房價還會迎來新一波的漲價潮,到了年,太原會承辦全國青少年運動會,簡稱青運會。 前言 從年前就嚷嚷著要走出去走出去,轉眼間已經到了年底依然在我的大太原呆著。年底了,不能免俗的我,也來寫一篇2017年度工作總結的文章,湊湊熱鬧。如果對你有一點點啟發,...

      dmlllll 評論0 收藏0
    • 回望2017:一個前端從業者砥礪前行一年

      摘要:走過了這一年,公眾號的名稱前前后后改了三次,最后定格為閏土大叔。均價,這價格絕對屬于太原市最便宜的樓盤之一了。據售樓部的朋友說,未來兩年太原的房價還會迎來新一波的漲價潮,到了年,太原會承辦全國青少年運動會,簡稱青運會。 前言 從年前就嚷嚷著要走出去走出去,轉眼間已經到了年底依然在我的大太原呆著。年底了,不能免俗的我,也來寫一篇2017年度工作總結的文章,湊湊熱鬧。如果對你有一點點啟發,...

      xietao3 評論0 收藏0
    • 玩轉 React 【第03期】:邂逅 React 組件

      摘要:中組件可以將切分成一些的獨立的可復用的部件。組件的返回值是一個需要在也頁面上顯示的元素,也就是說中組件必須有返回值。 showImg(https://segmentfault.com/img/bVbjgxB?w=900&h=383); 上期回顧 前文我們講解了 React 模板 JSX,接著我們繼續來看看 React 組件又是如何工作的呢? 組件化開發到了今天已經是大家的共識,在 R...

      Lin_R 評論0 收藏0

    發表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <