整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML 中 DOM的使用,知道這些就夠了

          HTML 中 DOM的使用,知道這些就夠了

          TML DOM (文檔對象模型)

          當網頁被加載時,瀏覽器會創建頁面的文檔對象模型(Document Object Model)。

          HTML DOM 定義了用于 HTML 的一系列標準的對象,以及訪問和處理 HTML 文檔的標準方法。通過 DOM,你可以訪問所有的 HTML 元素,連同它們所包含的文本和屬性。

          HTML DOM 模型被構造為對象的樹:


          查找 HTML 元素

          //通過 id 查找 HTML 元素
          var x=document.getElementById("intro");
          
          //通過標簽名查找 HTML 元素
          var x=document.getElementById("main");
          var y=x.getElementsByTagName("p");
          
          //通過類名找到 HTML 元素
          var x=document.getElementsByClassName("intro");

          HTML DOM 改變 HTML 內容

          //改變 HTML 輸出流
          document.write(Date());
          //絕對不要在文檔加載完成之后使用,用btn點擊事件執行 document.write()。這會覆蓋該文檔。
          
          //改變 HTML 內容
          document.getElementById(id).innerHTML=new HTML
          
          //改變 HTML 屬性
          document.getElementById(id).attribute=new value

          HTML DOM 改變 CSS

          //改變 HTML 樣式
          document.getElementById("p2").style.color="blue";
          document.getElementById("p2").style.fontFamily="Arial";
          document.getElementById("p2").style.fontSize="larger";
          
          <h1 id="id1">我的標題 1</h1>
          <button type="button" onclick="document.getElementById('id1').style.color='red'">
          點我!</button>

          HTML DOM 事件

          //對事件做出反應
          <h1 onclick="this.innerHTML='Ooops!'">點擊文本!</h1>
          
          <script>
          function changetext(id){
          	id.innerHTML="Ooops!";
          }
          </script>
          </head>
          <body>
          <h1 onclick="changetext(this)">點擊文本!</h1>
          </body>
          
          
          //HTML 事件屬性
          <body>
          <p>點擊按鈕執行 <em>displayDate()</em> 函數.</p>
          <button onclick="displayDate()">點我</button>
          <script>
          function displayDate()
          {
          	document.getElementById("demo").innerHTML=Date();
          }
          </script>
          <p id="demo"></p>
          </body>
          
          
          //使用 HTML DOM 來分配事件
          document.getElementById("myBtn").onclick=function(){displayDate()};
          
          //onchange 事件
          <script>
          function myFunction(){
          	var x=document.getElementById("fname");
          	x.value=x.value.toUpperCase();
          }
          </script>
          </head>
          <body>
          輸入你的名字: <input type="text" id="fname" onchange="myFunction()">
          <p>當你離開輸入框后,函數將被觸發,將小寫字母轉為大寫字母。</p>
          </body>

          HTML DOM 事件監聽器

          //addEventListener() 方法
          <body>
          <p>該實例使用 addEventListener() 方法在按鈕中添加點擊事件。 </p>
          <button id="myBtn">點我</button>
          <p id="demo"></p>
          <script>
          document.getElementById("myBtn").addEventListener("click", displayDate);
          function displayDate() {
              document.getElementById("demo").innerHTML=Date();
          }
          </script>
          </body>
          
          //向原元素添加事件句柄
          <body>
          <p>該實例使用 addEventListener() 方法在按鈕中添加點擊事件。 </p>
          <button id="myBtn">點我</button>
          <script>
          document.getElementById("myBtn").addEventListener("click", function(){
              alert("Hello World!");
          });
          </script>
          
          //向同一個元素中添加多個事件句柄
          <body>
          <p>該實例使用 addEventListener() 方法向同個按鈕中添加兩個點擊事件。</p>
          <button id="myBtn">點我</button>
          <script>
          var x=document.getElementById("myBtn");
          x.addEventListener("click", myFunction);
          x.addEventListener("click", someOtherFunction);
          function myFunction() {
              alert ("Hello World!")
          }
          function someOtherFunction() {
              alert ("函數已執行!")
          }
          </script>
          </body>

          HTML DOM 元素

          在文檔對象模型 (DOM) 中,每個節點都是一個對象。DOM 節點有三個重要的屬性,分別是:

          1. nodeName : 節點的名稱
          2. nodeValue :節點的值
          3. nodeType :節點的類型

          創建新的 HTML 元素

          <body>
          <div id="div1">
          <p id="p1">這是一個段落。</p>
          <p id="p2">這是另一個段落。</p>
          </div>
          <script>
          var para=document.createElement("p");
          var node=document.createTextNode("這是一個新段落。");
          para.appendChild(node);
          var element=document.getElementById("div1");
          element.appendChild(para);
          </script>

          刪除已有的 HTML 元素

          <body>
          <div id="div1">
          	<p id="p1">這是一個段落。</p>
          	<p id="p2">這是另一個段落。</p>
          </div>
          <script>
          var parent=document.getElementById("div1");
          var child=document.getElementById("p1");
          parent.removeChild(child);
          </script>
          </body>
          


          以上內容整理于網絡,如有侵權請聯系刪除。

          所有內置的JavaScript對象

          所有瀏覽器對象

          所有HTML DOM對象

          JavaScript 對象參考手冊

          參考手冊描述了每個對象的屬性和方法,并提供了在線實例。

          • Array 對象

          • Boolean 對象

          • Date 對象

          • Math 對象

          • Number 對象

          • String 對象

          • RegExp 對象

          • 全局屬性和函數

          Browser 對象參考手冊

          參考手冊描述了每個對象的屬性和方法,并提供了在線實例。

          • Window 對象

          • Navigator 對象

          • Screen 對象

          • History 對象

          • Location 對象

          HTML DOM 參考手冊

          參考手冊描述了 HTML DOM 的屬性和方法,并提供在線實例。

          • HTML Document

          • HTML Element

          • HTML Attributes

          • HTML Events



          HTML DOM 元素對象參考手冊

          參考手冊描述了每個對象的屬性和方法,并提供了在線實例。

          • Anchor 對象

          • Area 對象

          • Base 對象

          • Body 對象

          • Button 對象

          • Form 對象

          • Frame/IFrame 對象

          • Frameset 對象

          • Image 對象

          • Input Button 對象

          • Input Checkbox 對象

          • Input File 對象

          • Input Hidden 對象

          • Input Password 對象

          • Input Radio 對象

          • Input Reset 對象

          • Input Submit 對象

          • Input Text 對象

          • Link 對象

          • Meta 對象

          • Object 對象

          • Option 對象

          • Select 對象

          • Style 對象

          • Table 對象

          • td / th 對象

          • tr 對象

          • Textarea 對象



          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          OM節點獲取

          var oLi=document.getElementsByTagName("li");
          var oLi=document.getElementById("cssLi");
          var oLi=document.getElementsByName("myInput");

          操作屬性:

          document.getElementById(id).attribute=new value

          實例

          本例改變了 <img> 元素的 src 屬性:

          <!DOCTYPE html>
          <html>
          <body>
          <img id="image" src="smiley.gif">
          <script>
          document.getElementById("image").src="landscape.jpg";
          </script>
          </body>
          </html>

          操作內容

          修改 HTML 內容的最簡單的方法時使用 innerHTML 屬性和innerText(IE支持) outerText outerHTML

          區別描述如下:

          innerHTML 設置或獲取位于對象起始和結束標簽內的 HTML

          outerHTML 設置或獲取對象及其內容的 HTML 形式

          innerText 設置或獲取位于對象起始和結束標簽內的文本

          outerText 設置(包括標簽)或獲取(不包括標簽)對象的文本

          document.getElementById(id).innerHTML=new HTML

          實例一

          本例改變了 <p> 元素的內容:

          <html>
          <body>
          <p id="p1">Hello World!</p>
          <script>
          document.getElementById("p1").innerHTML="New text!";
          </script>
          </body>
          </html>

          實例二:

          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>innerHTML、outerHTML、innerText、outerHTML之間的區別</title>
          <script language="JavaScript" type="text/javascript">
            //.innerHTML
            function innerHTMLDemo()
            {
             id1.innerHTML="<i><u>設置或獲取位于對象起始和結束標簽內的 HTML.</u></i>";
            }
            //.innerText
            function innerTextDemo()
            {
             id2.innerText="<i><u>設置或獲取位于對象起始和結束標簽內的文本.</u></i>";
            }
            //.outerHTML
            function outerHTMLDemo()
            {
             id3.outerHTML="<font size=9pt color=red><i><u>設置或獲取對象及其內容的 HTML 形式.</u></i></font>";
            }
            //.outerText
            function outerTextDemo()
            {
             id4.outerText="<br></br><i><u>設置(包括標簽)或獲取(不包括標簽)對象的文本.</u></i>";
            }
            </script>
            </head>
            <body>
            <ul>
            <li id="id1" onclick="innerHTMLDemo()">innerHTML效果.</li>
            <li id="id2" onclick="innerTextDemo()">innerText效果.</li>
            <li id="id3" onclick="outerHTMLDemo()">outerHTML效果.</li>
            <li id="id4" onclick="outerTextDemo()">outerText效果.</li>
            </ul>
            </body>
            </html>

          簡單的說innerHTML和outerHTML、innerText與outerText的不同之處在于:

            1)、innerHTML與outerHTML在設置對象的內容時包含的HTML會被解析,而innerText與outerText則不會。

            2)、在設置時,innerHTML與innerText僅設置標簽內的文本,而outerHTML與outerText設置包括標簽在內外的文本(多個標簽)。

          特別說明:

            innerHTML是符合W3C標準的屬性,而innerText只適用于IE瀏覽器,因此,盡可能地去使用innerHTML,而少用innerText,

            如果要輸出不含HTML標簽的內容,可以使用innerHTML取得包含HTML標簽的內容后,再用正則表達式去除HTML標簽,

            下面是一個簡單的符合W3C標準的示例:

          <a href="javascript:alert(document.getElementById('test').innerHTML.replace(/<.+?>/gim,''))">無HTML,符合W3C標準</a>

          操作樣式

          如需改變 HTML 元素的樣式,請使用這個語法:

          document.getElementById(id).style.property=new style

          CSS樣式的個別屬性采用馱峰式寫法(如:backgroundColor), 且不帶橫線。

          document.body.style.backgroundColor="red";

          如:

          <p id="p2">Hello World!</p>
          <script>
          document.getElementById("p2").style.color="blue";
          </script>
          document.getElementById(id).className="類名";
          document.getElementById(id).className="類名1 類名2";
          document.getElementById(id).className+=" 類名3";//注意要留有空格
          <!DOCTYPE HTML>
          <html>
          <head>
          <title>追加CSS類別</title>
          <style type="text/css">
          .myUL1{
          color:#0000FF;
          font-family:Arial;
          font-weight:bold;
          }
          .myUL2{
          text-decoration:underline;
          }
          </style>
          <script language="javascript">
          function check(){
          var oMy=document.getElementsByTagName("ul")[0];
          oMy.className +=" myUL2"; //追加CSS類,注意要留有空格
          }
          </script>
          </head>
          <body>
          <ul onclick="check()" class="myUL1">
          <li>HTML</li>
          <li>JavaScript</li>
          <li>CSS</li>
          </ul>
          </body>
          </html>

          注意:追加CSS類,注意要留有空格;

          ul標記已經設定了.myUL1類的樣式的情況下,oMy.className="myUL1 myUL2"不等同于oMy.className +=" myUL2",

          oMy.className="myUL1 myUL2"表現形式與oMy.className="myUL2"一樣; 因此應當采用oMy.className +=" myUl2";

          改變 HTML 樣式

          通過 HTML DOM,您能夠訪問 HTML 元素的樣式對象。

          下面的例子改變一個段落的 HTML 樣式:

          如需向 HTML DOM 添加新元素,您首先必須創建該元素(元素節點),然后把它追加到已有的元素上。

          <div id="d1">
          <p id="p1">This is a paragraph.</p>
          <p id="p2">This is another paragraph.</p>
          </div>
          <script>
          var para=document.createElement("p");
          var node=document.createTextNode("This is new.");
          para.appendChild(node);
          var element=document.getElementById("d1");
          element.appendChild(para);
          </script>

          注意:經過測試證明,para.appendChild(node);調換至最后一行,運行正常

          最可行的方法:添加節點的順序,由內到外(個人習慣);


          主站蜘蛛池模板: 亚洲国产综合精品中文第一区| 国产一区二区三区高清在线观看 | 肥臀熟女一区二区三区| 亚洲AV综合色区无码一区| 麻豆视传媒一区二区三区| 无码AV天堂一区二区三区| 波多野结衣一区在线观看| 国产伦精品一区二区三区女| 精品日本一区二区三区在线观看| 亚洲熟妇无码一区二区三区导航 | 亚洲视频在线一区| 精品国产免费一区二区三区| 无码人妻av一区二区三区蜜臀 | 亚洲国产精品一区二区第四页| 无码人妻啪啪一区二区| 一区二区三区精品| 成人精品一区二区三区中文字幕| 狠狠做深爱婷婷久久综合一区| 文中字幕一区二区三区视频播放| 久久se精品一区二区影院| 日韩精品一区二区午夜成人版 | 波多野结衣久久一区二区| 一区二区三区在线|欧| 精品一区二区三区中文字幕| 国产精品一区二区久久精品无码| 日韩精品电影一区亚洲| 国产一区二区三区四| 国产在线一区视频| 国产传媒一区二区三区呀| 国产精品视频无圣光一区| 无码人妻aⅴ一区二区三区有奶水| 无码乱码av天堂一区二区| 亚洲一区二区免费视频| 精品国产一区二区三区不卡| 亚洲一区二区三区久久| 亚洲.国产.欧美一区二区三区| 亚洲欧洲日韩国产一区二区三区| 亚洲av乱码一区二区三区| 中文字幕乱码亚洲精品一区| 人妻在线无码一区二区三区| 精品人妻少妇一区二区三区不卡|