搜尋
首頁web前端js教程《JavaScript DOM 程式設計藝術》閱讀筆記之DOM基礎_javascript技巧

DOM
      
      DOM:文檔物件模型;

節點

       元素節點:DOM的原子為元素節點。

    之類的元素。元素可以包含其他的元素。沒有被包含在其他元素裡的唯一元素是元素

           文字節點:在XHTML文件裡,文字節點總是被包含在元素節點的內部。

           屬性節點:屬性節點用來對元素做更具體的描述。例如,幾乎每個元素都有一個title屬性,而我們可以利用這個屬性對包含在元素裡的東西作出準確的描述:

          

    Don't forget to buy this stuff.

           在DOM中,title="a gentle reminder"是屬性節點。

    CSS

         取得元素
          getElementById, getElementsByTagName, getElementsByClassName三種可以取得元素節點的方法。

          getElementsByTagName允許以一個通配符作為它的參數,而這表示文件裡的每個元素都將在這個函數所傳回的陣列裡佔有一席之地。通配符(“*”)必須在引號裡,這是為了和乘法運算有所區別。

          也可以將getElementById和getElementsByTagName結合起來運用。如下圖所示:

    複製程式碼 程式碼如下:

          var shopping = document.getElementById("purchase");
          var items = shopping.getElementsByTagName("*");

          這樣就可以得到id屬性值為purchase的元素包含多少個元素。

          getElementsByClassName方法只有較新的瀏覽器才會支援。為了彌補這一點,DOM腳本程式設計師需要使用現有的DOM方法來實作自己的getElementsByClassName。而多數情況下,他們的實作過程都與下面這個getElementsByClassName大致相似:

    複製程式碼 程式碼如下:

          function getElementsByClassName(node, classname){
            if(node.getElementsByClassName){
              return node.getElementsByClassName(classname);
            }else{
              var results = new Array();
              var elems = node.getElementsByTagName("*");
              for(var i=0;i             if(elems[i].className.indexOf(classname) != -1){
                  results[results.length] = elems[i];
                }
             }
             return results;
          }
       }

       這個getElementsByClassName函數接受兩個參數,第一個node表示DOM樹中的搜素起點,第二個classname就是要搜尋的類別名稱了。

    取得與設定屬性

         getAttribute是一個函數,它只有一個參數-你打算查詢的屬性的名字:

    複製程式碼 程式碼如下:

         object.getAttribute(attribute)

         setAttribute()允許我們對屬性節點的值做出修改。透過setAttribute對文件作出修改後,在透過瀏覽器的view source(查看原始碼)選項去查看文件的原始碼時看到的仍將是改變前的屬性值,也就是說,setAttribute所做的修改不會反映在文檔本身的源碼裡。這種「表裡不一」的現像源自DOM的工作模式:先載入文件的靜態內容,再動態刷新,動態刷新不影響文件的靜態內容。這正是DOM的真正威力:對頁面內容進行重新整理卻不需要在瀏覽器裡重新整理頁面。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Java vs JavaScript:開發人員的詳細比較Java vs JavaScript:開發人員的詳細比較May 16, 2025 am 12:01 AM

javaandjavascriptaredistinctlanguages:javaisusedforenterpriseandmobileapps,while javascriptifforInteractiveWebpages.1)JavaisComcompoppored,statieldinglationallyTypted,statilly tater astrunsonjvm.2)

JavaScript數據類型:瀏覽器和nodejs之間是否有區別?JavaScript數據類型:瀏覽器和nodejs之間是否有區別?May 14, 2025 am 12:15 AM

JavaScript核心數據類型在瀏覽器和Node.js中一致,但處理方式和額外類型有所不同。 1)全局對像在瀏覽器中為window,在Node.js中為global。 2)Node.js獨有Buffer對象,用於處理二進制數據。 3)性能和時間處理在兩者間也有差異,需根據環境調整代碼。

JavaScript評論:使用//和 / * * / * / * /JavaScript評論:使用//和 / * * / * / * /May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript:開發人員的比較分析Python vs. JavaScript:開發人員的比較分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

Python vs. JavaScript:選擇合適的工具Python vs. JavaScript:選擇合適的工具May 08, 2025 am 12:10 AM

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript:了解每個的優勢Python和JavaScript:了解每個的優勢May 06, 2025 am 12:15 AM

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

JavaScript的核心:它是在C還是C上構建的?JavaScript的核心:它是在C還是C上構建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript應用程序:從前端到後端JavaScript應用程序:從前端到後端May 04, 2025 am 12:12 AM

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

北端:融合系統,解釋
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
4 週前By尊渡假赌尊渡假赌尊渡假赌
<🎜>掩蓋:探險33-如何獲得完美的色度催化劑
2 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。