JavaScript一(企業雲盤的實際應用) JavaScript四(DOM編程)

JavaScript四(DOM編程)javascript

 

一.緒論css

      DOM是文檔對象模型(Document Object Module)的簡稱,藉助DOM模型,能夠將結構化文檔,轉換成DOM樹,程序能夠訪問,修改,增長,刪除樹的節點。程序經過操做DOM樹時,結構化文檔也會隨之html

動態改變。java

      DOM並非一種技術,它只是訪問結構化文檔的一種思想,各類語言都有本身的DOM解釋器。android

DOM爲經常使用的HTML元素提供了一整套的繼承體系,從頁面的document對象到每一個經常使用的HTML元素,DOM模型都提供了對應的類,每一個類都提供了相應的方法來操做元素自己,屬性及其子元素。DOM模型容許ajax

以樹的形式操做HTML文檔的每個元素。編程

      HTML中,Node,Document,Element,HTMLELement都是普通HTML元素的超類,不直接對應於HTML頁面的控件。但他們所包含的方法也可被其餘頁面元素調用。ssh

二.訪問HTML元素post

1.根據Id訪問HTML元素測試

document.getElementById(idVal):返回文檔中Id屬性爲idVal的HTML元素

複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>根據Id訪問HTML元素</title>
  <script type="text/javascript">
  var accessById = function(){
     alert(document.getElementById("a").innerHTML+"\n"+document.getElementById("b").value);
  }
  </script>
</head>
<body>
<div id="a">瘋狂java講義</div>
<textarea  id="b" cols="30" rows="3">輕量級javaEE企業應用實戰</textarea>
<input type="button" value="訪問2個元素" onclick="accessById()"/>
</body>
</html>
複製代碼

innerHTML屬性:該屬性表明該元素的內容。當某個元素的開始標籤和結束標籤之間都是字符串內容時(不包含其餘子元素),JavaScript子元素可經過它的innerHTML屬性返回這些字符串內容

value屬性:<textarea.../>是一個表單控件,開始標籤和結束標籤之間的內容都是它的值,只能經過value屬性來訪問。不只如此,,還有<input.../>元素所生成的表單控件,包括單行文本框,各類按鈕等,

                  它們的可視化文本都有value屬性控制,所以經過value屬性獲取它們的內容。除此以外的HTML元素,包括列表框,下拉菜單的列表項,<label.../>表單域,<button.../>按鈕,都應經過innerHTML

                  來獲取它們的內容。

2.根據css選擇器訪問HTML元素

    根據CSS選擇器來訪問HTML元素由document的以下方法提供

    a)Element querySeletor(seletors):該方法的參數既但是一個CSS選擇器,也但是用逗號隔開的多個CSS選擇器,該方法返回HTML文檔中第一個匹配選擇器參數的HTML元素。

 下面代碼示範了querySeletor()的用法

複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>根據選擇器訪問HTML元素</title>
  <script type="text/javascript">
    var accessById = function()
    {
      alert(document.querySelector("#a").innerHTML+"\n"+document.querySelector("#b").value);
    }
  </script>
</head>
<body>
<div id="a">瘋狂java講義</div>
<textarea  id="b" cols="30" rows="3">輕量級javaEE企業應用實戰</textarea>
<input type="button" value="訪問2個元素" onclick="accessById()"/>
</body>
</html>
複製代碼

  b)NodeList querySeletorALl(seletors):該方法與前一個方法的用法相似,只是該方法將返回全部符合CSS選擇器的HTML元素 。

      下面代碼示範了querySeletorAll()的用法

  

複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>根據選擇器訪問HTML元素</title>
  <script type="text/javascript">
    var change = function()
    {
      var divList = document.querySelectorAll("div");
      alert(divList);
      for(var i in divList)
      {
        divList[i].innerHTML = "測試內容"+ i;
        divList[i].style.width = '300px';
        divList[i].style.height = '50px';
        divList[i].style.margin = '10px';
        divList[i].style.backgroundColor = '#faa';
      }
    }
  </script>
</head>
<body>
<div></div>
<div></div>
<div></div>
<input type="button" onclick="change();" value="修改所有div元素"/>
</body>
</html>
複製代碼

3.利用節點關係訪問HTML元素

 一旦獲取了某個HTML元素,因爲該元素實際上與DOM樹的某個節點對應,所以能夠利用節點之間的父子、兄弟關係來訪問HTML元素。

利用節點關係訪問HTML元素的方法以下:

Node parentNode:返回當前節點的父節點。只讀屬性。

Node previousSibling:返回當前節點的前一個兄弟節點,只讀屬性。

Node nextSibling:返回當前節點的後一個兄弟節點,只讀屬性。

Node[] childNodes:返回當前節點的全部子節點,只讀屬性。

Node[] getElementByTagName(tagName):返回當前節點的具備指定標籤名的全部子節點。

Node firstChild:返回當前節點的第一個子節點,只讀屬性

Node lastChild:返回當前節點的最後一個子節點,只讀屬性。

下面頁面代碼示範瞭如何利用節點關係訪問HTML元素。

複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>根據節點關係訪問HTML元素</title>
  <style type="text/css">
    .selected{
      background-color: #66f;
    }
  </style>
</head>
<body>
<ol id="books">
  <li id="java">瘋狂Java講義</li>
  <li id="ssh">輕量級JavaEE企業應用實戰</li>
  <li id="ajax" class="selected">瘋狂Ajax講義</li>
  <li id="xml">瘋狂xml講義</li>
  <li id="ejb">經典JavaEE企業應用實戰</li>
  <li id="android">瘋狂Android講義</li>
</ol>

<input type="button" value="父節點" onclick="change(curTarget.parentNode);"/>
<input type="button" value="第一個" onclick="change(curTarget.parentNode.firstChild.nextSibling);"/>
<input type="button" value="上一個" onclick="change(curTarget.previousSibling.previousSibling);"/>
<input type="button" value="下一個" onclick="change(curTarget.nextSibling.nextSibling);"/>
<input type="button" value="最後一個" onclick="change(curTarget.parentNode.lastChild.previousSibling);"/>
<script type="text/javascript">
  var curTarget = document.getElementById("ajax");
  var change = function(target)
  {
    alert(target.innerHTML);
  }
</script>
</body>
</html>
複製代碼

4.訪問表單控件

相關文章
相關標籤/搜索