Dom所有的屬性,方法,和事件


nodeType  屬性值是代表節點類型的數字  只讀

節點類型:

  • 元素節點  ->  1
  • 屬性節點  ->  2
  • 文本節點  ->  3
  • 注釋節點  ->  8
  • document節點 ->  9
  • DocumentFragment節點  -> 11

 

nodeName 屬性值取決去節點類型 ,只讀,不能寫

  • 元素節點值為大寫的元素標簽名        document.body.nodeName    //"BODY"
  • document節點值為 "#document"     document.nodeName     //"#document"
  • 文本節點的nodeName值為 "#text"   
  • 注釋節點的nodeName值為 "#comment"      

 

nodeValue      屬性值是Text節點或Comment節點的文本內容 ,可讀可寫

hasChildNodes()方法 判斷當前節點是否有子節點,有返回true,否則false

ownerDocument  屬性表示指向整個文檔的文檔節點,通過這個屬性不能層層回溯到頂端,而是可以直接訪問文檔節點。

normalize()    將多個相鄰文本節點合並

splitText()    將一個文本節點分割成兩個文本節點,按照指定位置分割nodeValue值,原來的節點包含從開始到指定位置之前的值,新文本節點將包含剩下的值。

返回新文本節點。分割文本節點是從文本提取技術的一種常用Dom解析技術。

遍歷(查)節點樹  都是只讀

parentNode      屬性指向父節點

childNodes      子節點們,一個nodeList對象里面存放子節點們,基於Dom結構動態執行查詢結果,當Dom結構變化時能自動反應在NodeList對象中,是個類數組。

firstChild      第一個子節

lastChild       最后一個子節點

nextSibling     后一個兄弟節點

previousSibling 前一個兄弟節點

 

遍歷(查)元素節點樹 都是只讀

parentElement        當前元素父元素節點

children             子元素節點們

firstElementChild    第一個元素節點

lastElementChild     最后一個元素節點

nextElementSibling   后一個兄弟元素節點

previousElementChild 前一個兄弟元素節點 

 

操作某個節點的子節點(NodeList列表),也就是說要使用下面的方法必須先取得父節點

appendChild()  1個參數:要插入的節點,返回要添加的節點。

該方法向NodeList列表末尾添加節點,如果傳入的節點是文檔的一部分了,就會將原來位置的節點轉移到最后一個。

insertBefore() 2個參數:要插入的節點,作為參照的節點,返回要插入的節點。

如果第二個參數為null,則與appendChild操作相同

replaceChild() 2個參數:要插入的節點,要替換的節點,返回要被替換的節點,同時要插入的節點占據其位置。

removeChild()  1個參數:要移除的節點,返回要移除的節點 

 

cloneNode() 1個參數 true 或 false,返回復制的節點。

true深克隆:復制節點及整個節點子樹,false淺克隆:只復制節點本身。

 

document下的屬性

document.title     取得<title>元素中的文本--顯示在瀏覽器窗口的標題 可修改

document.URL       取得地址欄顯示的url

document.domain    取得域名 可修改

document.referrer  取得來源頁面的url

document.documentElement  取得對<HTML>的引用

document.body             取得對<body>的引用

html5 document新增屬性

document.head    取得對<head>的引用

document.readState  有兩個可能的值:loading 正在加載完文檔 complete:已經加載文檔

獲取元素引用的屬性和方法

只有HTMLDocument類型才有的方法

  • getElementById()      
  • getElemenstByName()    返回帶有給定name特性的所有元素(一個HTMLcollection對象)

HTMLDocument 和 HTMLElement 類型都有的方法

  • getElementsByTagName()     返回一個HTMLcollection對象
  • getElementsByTagName("*")  返回文檔上的所有元素個HTMLcollection對象
  • getElementsByClassName()   返回個HTMLcollection對象
  • querySelector()           參數可根據css的寫法  返回符合條件的第一個元素  
  • querySelectorAll()         返回符合條件的NodeList對象

HTMLcollection對象下的屬性 namedItem() 通過元素的name特性取得集合中的項。也可以同過中括號里面放字符串,在后台會自動調用namedItem方法。

 

document下的一些特殊集合,這些集合都是HTMLCollection對象

document.anchors  包含文檔中所有帶name特性的a元素

document.forms    包含文檔中的所有<form>元素  與document.getElementByTagName("form")得到的結果相同

document.images   包含文檔中所有的<img>元素   與document.getElementByTagName("img")得到的結果相同

document.links    包含文檔中所有帶href特性的<a>元素

 

每個HTML元素都存在下列標准特性 都可修改

id : 文檔中唯一標識符

title : 有關元素附加說明信息,鼠標滑過才會出現提示

dir : 語言的方向,值為 ltr left-to-right 從左往右。rtl 從右往左。

className : 元素指定的css類。

例:<div id="myDiv" class="bd" title="Body text" dir="ltr"></div

var div = document.getElementById("myDiv");
alert(div.id); //"myDiv""
alert(div.className); //"bd"
alert(div.title); //"Body text"
alert(div.dir); //"ltr"

 

取得特性,每個元素都有一或多個特性 。所有的特性都是屬性,直接給屬性賦值就可以給特性賦值。

getAttribute()  取得元素的特性值(可以是自定義特性)

setAttribute()  設置元素的特性值(可以是自定義特性)兩個參數:要設置的特性名 特性值

removeAttribute() 刪除元素的特性

 

創建節點

document.createElement() 創建元素節點

documente.createTextNode() 創建文本節點

document.createComment()  創建注釋節點

document.createDocumentFragment()  創建文檔碎片節點

 

webkitMatchesSelector() 參數:css選擇符。 如果調用元素與該選擇符匹配返回true,否則false

 

操作類名:元素的classList屬性,包含一個DOMTokenList對象。這個元素下的類名列表 classList下有如下方法

add(value) 將給定的字符串添加到列表中。  添加類名

contains(value)元素是否有給定的類名 有返回true,否則false

remove(value) 從列表中刪除給定類名

toggle(value)列表中有給定類名刪除,沒有就添加這個類名

 

插入HTML文本

innerHTML

outerHTML

insertAdjecentHTML()方法  兩個參數:插入位置 要插入的HTML文本

其中第一個參數只能是下列值之一

 

插入兄弟元素

  • "beforebegin":當前元素之前插入兄弟元素
  • "afterend" :在當前元素之后插入兄弟元素

插入子元素

  • "afterbegin" : 在當前元素之下的一個子元素之前插入新的子元素
  • "beforeend" : 在當前元素之下的最后插入子元素

 

Element 元素下的方法

ScrollIntoView() 元素調用這個方法可以出現在視口中 參數:true:元素頂部與視口頂部平齊   false:元素底部與視口底部平齊

contains()  調用元素時候包含參數元素 包含true 不包含false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM