JavaScript學習系列2 DOM

來源:互聯網
上載者:User

DOM = document + object+model
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
     <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>Shopping List</title>
          <!-- 樣式表-- www.2cto.com>
          <style>
               p {
                    color: yellow;
                    font-family: "arial", sans-serif;
                    font-size:1.2em;
               }
               body {
                    color:white;
                    background-color:black;
               }
               .special {
                    font-style:italic;
               }
               h2.special {
                    text-transform:uppercase;
               }
               #purchases {
                    border:1px solid white;
                    background-color:#333;
                    color:#ccc;
                    padding:1em;
               }
               #purchases li {
                    font-weight:bold;
               }
          </style>
     </head>
     <body>
          <h1>what to buy</h1>
        <h2 class="special">This is uppercase</h2>
          <p title="a gentle reminder">Don't forget to buy this stuff.</p>
          <ul id="purchases">
               <li>A tin of beans</li>
              <li class="special">Cheese</li>
              <li >Milk</li>
          </ul>
          <!-- Mark-up goes here -->
          <script src="file.js"></script>
     </body>
</html>
 
 
JavaScript
<!-- alert(typeof document.getElementById("purchases"));
<!-- alert(document.getElementsByTagName("*").length);
alert(document.getElementsByClassName("special").length);
var shopping = document.getElementById("purchases");
alert(shopping.getElementsByTagName("*").length);
 
function add(num1,num2) {
     var total = num1*num2;
     alert(3 == "3");
}
 
HTML 5 DOM中新增了一個令人期待已久的方法:getElementsByClassName。這方法讓我們能夠Class屬性中的類名來訪問元素。但是這個方法比較新,只有較新的瀏覽器才支援他。
因此我們可以 寫一個方法來實現這個功能。
function getElementByClassName(node, classname) {
     if(node.getElementsByClassName) {
          return node.getElementsByClassName(classname);
     } else {
          var results = new Array();
          var elems = node.getElementsByTagName("*");
          for(var i=0; i<elems.length; i++) {
               if(elems[i].className.indexOf(classname) != -1) {
                    results[results.length] = elems[i];
               } 
          }
          return results;
     }
}
 
var shopping = document.getElementById("purchases");
alert(shopping.getAttribute("title"));
shopping.setAttribute("title", "a list of goods");
alert(shopping.getAttribute("title"));
 
setAttribute:先建立屬性,然後設定他的值
 
這裡有個非常值得關注的細節:通過setAttribute對文檔做出修改後,在通過瀏覽器view source選項去查看文檔的原始碼時看到的仍將是改變前的屬性值,
也就是說setAttribute做出的修改不會反映在文檔本身的原始碼裡。這種”表裡不一“的現象源自DOM的工作模式:先載入文檔的靜態內容,再動態重新整理,動態重新整理
不會影響文檔的靜態內容。這正是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.