<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢想飛翔

    自強不息
    posts - 111, comments - 30, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    document.all 的詳細解釋(轉)

    Posted on 2007-08-03 17:35 love1563 閱讀(207) 評論(0)  編輯  收藏

    從IE4開始IE的object model才增加了document.all[],來看看document.all[]的Description:
    Array of all HTML tags in the document.Collection of all elements contained by the object.
      也就是說document.all[]是文檔中所有標簽組成的一個數組變量,包括了文檔對象中所有元素(見例1)。

    IE’s document.all collection exposes all document elements.This array provides access to every element in the document.

      document.all[]這個數組可以訪問文檔中所有元素。

    例1(這個可以讓你理解文檔中哪些是對象)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "<html xmlns="<head>
    <title>Document.All Example</title>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    </head>
    <body>
    <h1>Example Heading</h1>
    <hr />
    <p>This is a <em>paragraph</em>. It is only a <em>paragraph.</em></p>
    <p>Yet another <em>paragraph.</em></p>
    <p>This final <em>paragraph</em> has <em id="special">special emphasis.</em></p>
    <hr />
    <script type="text/javascript">
    <!--
    var i,origLength;
    origLength = document.all.length;
    document.write('document.all.length='+origLength+"<br />");
    for (i = 0; i < origLength; i++)
    {
    document.write("document.all["+i+"]="+document.all[i].tagName+"<br />");
    }
    //-->
    </script>
    </body>
    </html>

      它的執行結果是:

    Example Heading

    --------------------------------------------------------------------------------

    This is a paragraph. It is only a paragraph.

    Yet another paragraph.

    This final paragraph has special emphasis.


    --------------------------------------------------------------------------------
    document.all.length=18
    document.all[0]=!
    document.all[1]=HTML
    document.all[2]=HEAD
    document.all[3]=TITLE
    document.all[4]=META
    document.all[5]=BODY
    document.all[6]=H1
    document.all[7]=HR
    document.all[8]=P
    document.all[9]=EM
    document.all[10]=EM
    document.all[11]=P
    document.all[12]=EM
    document.all[13]=P
    document.all[14]=EM
    document.all[15]=EM
    document.all[16]=HR
    document.all[17]=SCRIPT
    (注意它只可以在IE上運行)
      例2(訪問一個特定元素)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>單擊DIV變色</title>
    <style type="text/css">
    <!--
    #docid{
    height:400px;
    width:400px;
    background-color:#999;}
    -->
    </style>
    </head>
    <body><div id="docid" name="docname" onClick="bgcolor()"></div>
    </body>
    </html>
    <script language="javascript" type="text/javascript">
    <!--
    function bgcolor(){
    document.all[7].style.backgroundColor="#000"
    }
    -->
    </script>

      上面的這個例子讓你了解怎么訪問文檔中的一個特定元素,比如文檔中有一個DIV
    <div id="docid" name="docname"></div>,你可以通過這個DIV的ID,NAME或INDEX屬性訪問這個DIV:

    document.all["docid"]
    document.all["docname"]
    document.all.item("docid")
    document.all.item("docname")
    document.all[7]
    document.all.tags("div")則返回文檔中所有DIV數組,本例中只有一個DIV,所以用document.all.tags("div")[0]就可以訪問了。

      3、使用document.all[]

    例3

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "
    <html xmlns="<head>
    <title>Document.All Example #2</title>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    </head>
    <body>
    <!-- Works in Internet Explorer and compatible -->
    <h1 id="heading1" align="center" style="font-size: larger;">DHTML Fun!!!</h1>
    <form name="testform" id="testform" action="#" method="get">
    <br /><br />
    <input type="button" value="Align Left"
    onclick="document.all['heading1'].align='left';" />//改變<h1></h1>標簽對中的align屬性的值,下面的代碼作用相同
    <input type="button" value="Align Center"
    onclick="document.all['heading1'].align='center';" />
    <input type="button" value="Align Right"
    onclick="document.all['heading1'].align='right';" />
    <br /><br />
    <input type="button" value="Bigger"
    onclick="document.all['heading1'].style.fontSize='xx-large';" />
    <input type="button" value="Smaller"
    onclick="document.all['heading1'].style.fontSize='xx-small';" />
    <br /><br />
    <input type="button" value="Red"
    onclick="document.all['heading1'].style.color='red';" />
    <input type="button" value="Blue"
    onclick="document.all['heading1'].style.color='blue';" />
    <input type="button" value="Black"
    onclick="document.all['heading1'].style.color='black';" />
    <br /><br />
    <input type="text" name="userText" id="userText" size="30" />
    <input type="button" value="Change Text"
    onclick="document.all['heading1'].innerText=document.testform.userText.value;" />//改變<h1></h1>標簽對中的文本內容
    </form>
    </body>
    </html>

    4、標準DOM中的訪問方法

      開頭就說過document.all[]不符合WEB標準,那用什么來替代它呢?document.getElementById


    Most third-party browsers are “strict standards” implementations, meaning that they implement W3C and ECMA standards and ignore most of the proprietary object models of Internet Explorer and Netscape.If the demographic for your Web site includes users likely to use less common browsers, such as Linux aficionados, it might be a good idea to avoid IE-specific features and use the W3C DOM instead. by Internet Explorer 6, we see that IE implements significant portions of the W3C DOM.

      這段話的意思是大多數第三方瀏覽器只支持W3C的DOM,如果你的網站用戶使用其他的瀏覽器,那么你最好避免使用IE的私有屬性。而且IE6也開始支持W3C DOM。

    畢竟大多數人還不了解標準,在使用標準前,你還可以在你的網頁中用document.all[]訪問文檔對象前面寫到WEB標準,今天繼續WEB標準下 可以通過getElementById(), getElementsByName(), and getElementsByTagName()訪問DOCUMENT中的任一個標簽:

      1、getElementById()

      getElementById()可以訪問DOCUMENT中的某一特定元素,顧名思義,就是通過ID來取得元素,所以只能訪問設置了ID的元素。

      比如說有一個DIV的ID為docid:

    <div id="docid"></div>

      那么就可以用getElementById("docid")來獲得這個元素。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>ById</title>
    <style type="text/css">
    <!--
    #docid{
    height:400px;
    width:400px;
    background-color:#999;}
    -->
    </style>
    </head>
    <body><div id="docid" name="docname" onClick="bgcolor()"></div>
    </body>
    </html>
    <script language="javascript" type="text/javascript">
    <!--
    function bgcolor(){
    document.getElementById("docid").style.backgroundColor="#000"
    }
    -->
    </script>

      2、getElementsByName()

      這個是通過NAME來獲得元素,但不知大家注意沒有,這個是GET ELEMENTS,復數ELEMENTS代表獲得的不是一個元素,為什么呢?

      因為DOCUMENT中每一個元素的ID是唯一的,但NAME卻可以重復。打個比喻就像人的身份證號是唯一的(理論上,雖然現實中有重復),但 名字重復的卻很多。如果一個文檔中有兩個以上的標簽NAME相同,那么getElementsByName()就可以取得這些元素組成一個數組。

      比如有兩個DIV:

      <div name="docname" id="docid1"></div>
      <div name="docname" id="docid2"></div>

      那么可以用getElementsByName("docname")獲得這兩個DIV,用getElementsByName("docname")[0]訪問第一個DIV,用getElementsByName("docname")[1]訪問第二個DIV。

      下面這段話有錯,請看forfor的回復,但是很可惜,IE沒有支持這個方法,大家有興趣可以在FIREFOX或NETSCAPE中調試下面這個例子。(我在NETSCAPE7.2英文版和FIREFOX1.0中調試成功。)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Byname,tag</title>
    <style type="text/css">
    <!--
    #docid1,#docid2{
    margin:10px;
    height:400px;
    width:400px;
    background-color:#999;}
    -->
    </style>
    </head>
    <body>
    <div name="docname" id="docid1" onClick="bgcolor()"></div>
    <div name="docname" id="docid2" onClick="bgcolor()"></div>
    </body>
    </html>
    <script language="javascript" type="text/javascript">
    <!--
    function bgcolor(){
    var docnObj=document.getElementsByName("docname");
    docnObj[0].style.backgroundColor = "black";
    docnObj[1].style.backgroundColor = "black";
    }
    -->
    </script>

      3、getElementsByTagName()

      這個呢就是通過TAGNAME(標簽名稱)來獲得元素,一個DOCUMENT中當然會有相同的標簽,所以這個方法也是取得一個數組。

      下面這個例子有兩個DIV,可以用getElementsByTagName("div")來訪問它們,用getElementsByTagName("div")[0]訪問第一個DIV,用

    getElementsByTagName("div")[1]訪問第二個DIV。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Byname,tag</title>
    <style type="text/css">
    <!--
    #docid1,#docid2{
    margin:10px;
    height:400px;
    width:400px;
    background-color:#999;}
    -->
    </style>
    </head>
    <body>
    <div name="docname" id="docid1" onClick="bgcolor()"></div>
    <div name="docname" id="docid2" onClick="bgcolor()"></div>
    </body>
    </html>
    <script language="javascript" type="text/javascript">
    <!--
    function bgcolor(){
    var docnObj=document.getElementsByTagName("div");
    docnObj[0].style.backgroundColor = "black";
    docnObj[1].style.backgroundColor = "black";
    }
    -->
    </script>


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久91亚洲人成电影网站| av在线亚洲欧洲日产一区二区| 久久精品亚洲综合一品| 精品久久久久久国产免费了| 亚洲精品无码激情AV| 欧洲美女大片免费播放器视频| 亚洲成人影院在线观看| 一级成人a做片免费| 亚洲区日韩区无码区| 在线观看免费无码视频| 国产av天堂亚洲国产av天堂 | 亚洲Av无码国产情品久久| 偷自拍亚洲视频在线观看99| 在线播放免费人成视频在线观看| 亚洲人成网站在线播放2019| 毛片免费观看的视频在线| jzzijzzij在线观看亚洲熟妇| 免费人成视频在线观看不卡| caoporm超免费公开视频| 亚洲国产精品福利片在线观看| 人人玩人人添人人澡免费| 亚洲日韩国产精品无码av| 免费在线观看的网站| 国产午夜亚洲精品不卡电影| 亚洲人成网亚洲欧洲无码久久| 少妇无码一区二区三区免费| 精品亚洲成在人线AV无码| 日韩免费三级电影| 亚洲精品视频免费观看| 亚洲AV永久纯肉无码精品动漫| 国产国产人免费视频成69堂| 羞羞漫画小舞被黄漫免费| 亚洲AV无一区二区三区久久| 手机在线毛片免费播放 | 大地资源网高清在线观看免费| 78成人精品电影在线播放日韩精品电影一区亚洲 | 无码专区一va亚洲v专区在线| a级成人毛片免费图片| 亚洲乱码在线播放| 亚洲精品国精品久久99热| 美女内射无套日韩免费播放|