<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                1.文檔節點是每個文檔的根節點。在HTML頁面,文檔節點始終都是<html>元素,因此我們也稱其為**文檔元素**。 2.DOM1級定義了一個Node接口,該接口將由DOM中的所有節點類型實現。這個Node接口在JavaScript中是作為Node類型實現的。除了IE之外,在其他所有瀏覽器中都可以訪問到這個類型。JavaScript中的所有節點類型都繼承自Node類型,因此所有節點類型都共享著相同的基本屬性和方法。 3.每個節點都有一個**nodeType**屬性,用于表明節點的類型。節點類型由在Node類型中定義的12個數值常量來表示。其中元素節點屬性值為1,特性節點的屬性值為2,文本節點的屬性值為3。將nodeType屬性與數字值比較可以檢測其節點類型: ~~~ if (someNode.nodeType == 1){ alert('Node is an element'); } ~~~ 4.要了解節點的具體信息,可以使用**nodeName**和**nodeValue**屬性。其中nodeName保存著節點的具體名稱(如<p>標簽的nodeName值為大寫的‘P’,nodeValue始終為null)。 5.每個節點都有一個**childNodes**屬性,其中保存著一個NodeList對象。NodeList對象是一種類數組對象,用于保存一組有序的節點。雖然可以使用方括號語法來訪問其子項,而且這個對象也有length屬性,但它并不是Array的實例。NodeList對象的獨特之處在于,它實際上是基于DOM結構動態執行查詢的結構,因此DOM結構的變化能夠自動反映在NodeList對象中。將childNodes轉換成數組的方法: ~~~ function convetToArray(nodes){ var array = null; try { array = Array.prototype.slice.call(nodes,0); } catch(error) { array = new Array(); for (var i=0;i<nodes.length;i++) { array.push(nodes[i]); } } return array; } ~~~ 元素節點內的空白符也會作為文本標簽被childNodes所包含。 6.描述節點間關系的屬性還有:**parentNode、nextSibling、previousSibling、firstChild、lastChild** 7.**hasChildNodes()**方法在節點包含一或多個子節點的情況下返回true。所有節點都有的最后一個屬性是ownerDocument,該屬性指向表示整個文檔的文檔節點,通過這個屬性我們可以不必在節點層次中通過層層回溯到達頂端,而是可以直接訪問文檔節點。 8.**appendChild()**向節點末尾添加一個節點,并返回新增節點。如果傳入到appendChild()中的節點已經是文檔的一部分了,那相當于將節點剪切了。 9.**insertBefore()**方法將一個新節點插到指定節點前面,并返回這個新節點。這個方法接收兩個參數:要插入的節點和作為參照的節點。如果參照節點是null則與appendChild()執行相同結果。insertBefore()同樣可以實現剪切。 10.**replaceChild()**方法將一個新節點替換掉原節點,并返回原節點。 11.**removeChild()**方法刪除一個節點。 12.***以上四個方法操作的都是某個節點的子節點,也就是說,要使用這幾個方法必須先取得父節點(使用parentNode屬性)。*** 13.**cloneNode()**方法用于創建節點副本。若傳入參數為true,則會進行深復制,即復制節點及其整個子節點樹。否則只會復制原節點本身。cloneNode()方法不會復制添加到DOM節點中的JavaScriipt屬性,例如事件處理程序等。 15.***document.documentElement指向<html>元素。document.body指向<body>元素。*** 16.通過**document.title**屬性可以取得當前頁面的標題(并非取得完整的title元素DOM對象),也可以修改當前頁面的標題并反映在瀏覽器的標題欄中。修改title屬性的值會改變<title>元素。 17.**URL**屬性中包含頁面完整的URL,**domain**屬性中只包含頁面的域名,而**referrer**屬性中則保存著鏈接到當前頁面的那個頁面的URL。所有這些信息都存在于請求的HTTP頭部。這三個屬性中只有domain是可以設置的,但由于安全方面的限制,也并非可以給domain設置任何值。如果URL中包含一個子域名,則只能將domain設置為其主域名,同時不能將主域名設置為子域名。設置document.domain的意義在于,當頁面中包含來自其他子域的框架或內嵌框架時,能夠方便地進行相互訪問而不受限于跨域安全限制。 18.getElementsByTagName()方法返回的是包含零或多個元素的nodeList。在HTML文檔中,這個方法會返回一個HTMLCollection對象,作為一個‘動態’集合。 19.getElementsByName()方法常用于取得單選按鈕。 20.document.implementation.hasFeature()方法用于檢測瀏覽器是否支持給定的實現部分以及所支持的版本。通常還是要搭配能力檢測使用。 21.document.write()和document.writeln()方法都接收一個字符串參數,即要寫入到輸出流中的文本。write()會原樣寫入,而writeln()則會在字符串的末尾添加一個換行符(\n). ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>DOCUMENT.WRITE() TEST</title> </head> <body> <p>the Curent date and time is: <script> document.write('<strong>'+(new Date().toString())+'</strong>'); </script> </p> <script> </script> </body> </html> ~~~ 這個例子展示了在頁面加載過程中輸出當前日期和時間的代碼。此外,還可以使用write()和writeln()方法動態地包含外部資源,例如Javascript文件等(必須做轉義處理)。 **如果在文檔加載結束后(如window.onload事件之后)再調用document.write(),那么輸出的內容將會重寫整個頁面。** 22.所有元素對象都有的常用屬性包括:id、title、className,它們也都是可修改的。 23.與特性相關的方法有三個setAttribute()、getAttribute()、removeAttribute()。 有兩類特殊的特性,它們雖然有對應的屬性名,但屬性的值與通過getAttribute()返回的值并不同。第一類特性就是style,在通過getAttribute()訪問時,返回的style特性值中包含的是CSS文本,而通過屬性來訪問它則會 返回一個對象。第二類特性是onclick這樣的事件處理程序。如果通過getAttribute()訪問返回的是相應的字符串,而在訪問onclick屬性時返回的是一個JavaScript函數或null。 24.創建元素節點:document.createElement(),接受一個表示要創建的標簽的字符串,如'div'。 25.創建文本節點:document.createTextNode();通過nodeValue屬性修改文本節點。 26.normalize()方法用于格式化處理文檔樹中的文本節點(包括空文本節點或接連出現的兩個文本節點等情況)。而splitText()與前者相反,這個方法會按照指定的位置分割nodeValue值。 27.**NodeList及其近親NamedNodeMap和HTMLCollection這三個集合都是動態的,而不是某個時間節點生成快照。換句話說,每當文檔結構發生變化時,它們都會得到更新。因此,它們始終都會保存著最新、最準確的消息。從本質上說,所有NodeList對象都是在訪問DOM文檔時實時運行的查詢。(不失時機地緩存NodeList對象的長度是處理這種特性的一種技巧)** ~~~ var divs = document.getElementsByTagName("div"); alert(divs instanceof HTMLCollection); //true (chrome中返回false,divs是NodeList對象) var div = document.getElementById("div1"); var children = div.childNodes; //獲取div元素子節點集合 alert(children instanceof NodeList); //true var attrs = div.attributes; //獲取div元素的特性 alert(children instanceof NamedNodeMap); //true ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看