Python開發【前端】:DOM

來源:互聯網
上載者:User

標籤:取消   function   標籤   平台   indicator   strong   瀏覽器   [1]   als   

DOM(文件物件模型(Document Object Model))

  文件物件模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴充標誌語言的標準編程介面。在網頁上,組織頁面(或文檔)的對象被組織在一個樹形結構中,用來表示文檔中對象的標準模型就稱為DOM。Document Object Model的曆史可以追溯至1990年代後期微軟與Netscape的“瀏覽器大戰”,雙方為了在JavaScript與JScript一決生死,於是大規模的賦予瀏覽器強大的功能。微軟在網頁技術上加入了不少專屬事物,既有VBScript、ActiveX、以及微軟自家的DHTML格式等,使不少網頁使用非微軟平台及瀏覽器無法正常顯示。DOM即是當時蘊釀出來的傑作

 

1、尋找元素

①  直接尋找

document.getElementById             根據ID擷取一個標籤document.getElementsByName          根據name屬性擷取標籤集合document.getElementsByClassName     根據class屬性擷取標籤集合document.getElementsByTagName       根據標籤名擷取標籤集合

② 間接尋找

parentNode          // 父節點childNodes          // 所有子節點firstChild          // 第一個子節點lastChild           // 最後一個子節點nextSibling         // 下一個兄弟節點previousSibling     // 上一個兄弟節點 parentElement           // 父節點標籤元素children                // 所有子標籤firstElementChild       // 第一個子標籤元素lastElementChild        // 最後一個子標籤元素nextElementtSibling     // 下一個兄弟標籤元素previousElementSibling  // 上一個兄弟標籤元素

2、操作

① 內容

innerText   文本outerTextinnerHTML   HTML內容innerHTML  value       值

② 屬性

attributes                // 擷取所有標籤屬性setAttribute(key,value)   // 設定標籤屬性getAttribute(key)         // 擷取指定標籤屬性 /*var atr = document.createAttribute("class");atr.nodeValue="democlass";document.getElementById(‘n1‘).setAttributeNode(atr);*/
<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title></title></head><body>    <input type="button" value="全選"  onclick="CheckAll();"/>    <input type="button" value="取消" onclick="CancelAll();"/>    <input type="button" value="反選" onclick="ReverseCheck();"/>    <table border="1" >        <thead>        </thead>        <tbody id="tb">            <tr>                <td><input type="checkbox" /></td>                <td>111</td>                <td>222</td>            </tr>            <tr>                <td><input type="checkbox" /></td>                <td>111</td>                <td>222</td>            </tr>            <tr>                <td><input type="checkbox" /></td>                <td>111</td>                <td>222</td>            </tr>            <tr>                <td><input type="checkbox" /></td>                <td>111</td>                <td>222</td>            </tr>        </tbody>    </table>    <script>        function CheckAll(ths){            var tb = document.getElementById(‘tb‘);            var trs = tb.childNodes;            for(var i =0; i<trs.length; i++){                var current_tr = trs[i];                if(current_tr.nodeType==1){                    var inp = current_tr.firstElementChild.getElementsByTagName(‘input‘)[0];                    inp.checked = true;                }            }        }        function CancelAll(ths){            var tb = document.getElementById(‘tb‘);            var trs = tb.childNodes;            for(var i =0; i<trs.length; i++){                var current_tr = trs[i];                if(current_tr.nodeType==1){                    var inp = current_tr.firstElementChild.getElementsByTagName(‘input‘)[0];                    inp.checked = false;                }            }        }        function ReverseCheck(ths){            var tb = document.getElementById(‘tb‘);            var trs = tb.childNodes;            for(var i =0; i<trs.length; i++){                var current_tr = trs[i];                if(current_tr.nodeType==1){                    var inp = current_tr.firstElementChild.getElementsByTagName(‘input‘)[0];                    if(inp.checked){                        inp.checked = false;                    }else{                        inp.checked = true;                    }                }            }        }    </script></body></html>Demo
Demo

3、擴充練習

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body>    <div id = "i1">我是i1</div>    <a>aaaaa</a>    <a>bbbbb</a>    <a>ccccc</a></body></html>
練習的html檔案
      //擷取ID>document.getElementById(‘i1‘);< <div id=?"i1">?我是i1?</div>?      //擷取內容>document.getElementById(‘i1‘).innerText<"我是i1"      //重新賦值>document.getElementById(‘i1‘).innerText = ‘新內容‘<"新內容"      //擷取tagname集合>document.getElementsByTagName(‘a‘);<[<a>?aaaaa?</a>?, <a>?bbbbb?</a>?, <a>?ccccc?</a>?]      //擷取集合指定索引元素>document.getElementsByTagName(‘a‘)[1]< <a>?bbbbb?</a>?      //對單個元素重新賦值>document.getElementsByTagName(‘a‘)[1].innerText = 66666;<66666      //對集合中所有檔案賦值>tags = document.getElementsByTagName(‘a‘);<[<a>?aaaaa?</a>?, <a>?66666?</a>?, <a>?ccccc?</a>?]>for(var i=0;i<tags.length;i++){tags[i].innerText=99999;}<99999>tags<[<a>?99999?</a>?, <a>?99999?</a>?, <a>?99999?</a>?]

  

 

Python開發【前端】:DOM

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.