• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    document.all與getElementById、getElementsByName、getElementsByTagName用法區別

    來源:懂視網 責編:小采 時間:2020-11-27 20:40:53
    文檔

    document.all與getElementById、getElementsByName、getElementsByTagName用法區別

    document.all與getElementById、getElementsByName、getElementsByTagName用法區別:理解這句話可看以下: 例1(這個可以讓你理解文檔中哪些是對象) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona
    推薦度:
    導讀document.all與getElementById、getElementsByName、getElementsByTagName用法區別:理解這句話可看以下: 例1(這個可以讓你理解文檔中哪些是對象) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona

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

     
    <!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> 
      <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

    可以通過ID,NAME或INDEX屬性訪問某個具體的元素
    例2(訪問一個特定元素)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
      "http://www.w3.org/TR/html4/loose.dtd"> 
      <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><p id="docid" 
    name="docname" onClick="bgcolor()"></p> 
      </body> 
      </html> 
      <script language="javascript" 
    type="text/javascript"> 
      <!-- 
      function bgcolor(){ 
      document.all[7].style.backgroundColor="#000" 
      } 
      --> 
      </script> 
      上面的這個例子讓你了解怎么訪問文檔中的一個特定元素,比如文檔中有一個DIV 
      <p 
    id="docid" name="docname"></p>,你可以通過這個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("p")則返回文檔中所有DIV數組,本例中只有一個DIV,所以用document.all.tags("p")[0]就可以訪問了。

    可以用document.all["元素名"].屬性名="屬性值"來動態改變元素的屬性。用這條語句,可以做出許許多多動態網頁效果,如:動態變換圖片、動態改變文本的背景、動態改變網頁的背景、動態改變圖片的大小、動態改變文字的大小各顏色等等

    <script language="JavaScript"> 
    function cardClick(cardID){ 
    var 
    obj; 
    for (var i=1;i<7;i++){ 
    obj=document.all("card"+i); 
    obj.style.backgroundColor="#3A6EA5"; 
    obj.style.color="#FFFFFF"; 
    } 
    obj=document.all("card"+cardID); 
    obj.style.backgroundColor="#FFFFFF"; 
    obj.style.color="#3A6EA5"; 
    
    for (var i=1;i<7;i++){ 
    obj=document.all("content"+i); 
    obj.style.display="none"; 
    } 
    obj=document.all("content"+cardID); 
    obj.style.display=""; 
    } 
    </script>

    document.all可以判斷瀏覽器是否是IE
    if(document.all){
    alert("is IE!");
    }
    使用document.all注意的地方
    代碼1:

    <input name=aaa value=aaa> 
    <input id=bbb value=bbb> 
    <script language=Jscript> 
    alert(document.all.aaa.value) 
    //根據name取value 
    alert(document.all.bbb.value) //根據id取 value 
    </script>

    代碼2:
    但是常常name可以相同(如:用checkbox取用戶的多項愛好的情況)

    <input name=aaa value=a1> 
    <input name=aaa value=a2> 
    <input id=bbb value=bbb> 
    <script language=Jscript> 
    alert(document.all.aaa(0).value) //顯示a1 
    alert(document.all.aaa(1).value) 
    //顯示a2 
    alert(document.all.bbb(0).value) //這行代碼會失敗 
    </script>

    代碼3:理論上一個頁面中的id是互不相同的,如果出現不同tags有相同的id

    document.all.id 就會失敗,就象這樣: 
    <input id=aaa value=a1> 
    <input 
    id=aaa value=a2> 
    <script language=Jscript> 
    alert(document.all.aaa.value) //顯示 undefined 而不是 a1或者a2 
    </script>

    代碼4:
    對于一個復雜的頁面(代碼很長,或者id是由程序自動產生),或著一個
    javascript初學者寫的程序,很有可能出現兩個tags有相同id的情況。
    為了編程的時候不出錯,我推薦這樣的寫法:

    <input id=aaa value=aaa1> 
    <input id=aaa value=aaa2> 
    <input name=bbb value=bbb> 
    <input name=bbb value=bbb2> 
    <input id=ccc value=ccc> 
    <input name=ddd value=ddd> 
    <script language=Jscript> 
    alert(document.all("aaa",0).value) 
    alert(document.all("aaa",1).value) 
    alert(document.all("bbb",0).value) 
    alert(document.all("bbb",1).value) 
    alert(document.all("ccc",0).value) 
    alert(document.all("ddd",0).value) 
    </script>

    這樣最安全.
    以下是我自己的測試:

     
    <html> 
    <head> 
    <title> 
    document.all test 
    </title> 
    <script language="javascript"> 
    function view() 
    { 
    /* 
    //通過name兩種訪問格式 
    alert(document.all.aaa.value); 
    alert(document.all["aaa"].value); 
    //通過id的兩種訪問格式 
    alert(document.all.ccc.value); 
    alert(document.all["ccc"].value); 
    */ 
    //當一頁中存在兩個name相同的input時不能使用上面的訪問方法,因為將返回undefine,請使用下面方式訪問 
    alert(document.all.aaa(0).value); 
    alert(document.all.aaa(1).value); 
    //安全的寫法 
    alert(document.all("aaa",0).value); 
    alert(document.all("aaa",1).value); 
    } 
    </script> 
    </head> 
    <body> 
    <form name="form1" id="f1"> 
    <input type="text" name="aaa" > 
    <input type="text" name="aaa" id="ccc"> 
    <input type="button" name="bbb" value="click" onclick="view();"> 
    </form> 
    </body> 
    </html>

    從上面可以看到我們在使用document.all的時候可能會返回一個值或多個值的情況,所以使用之前一定要判斷長度,要不然會出現錯誤。
    如下面的問題:兩個函數對多個checkbox進行處理,分別執行全部選中和取消全選功能如果按下面使用會出現什么問題呢?

     
    <HTML> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    function checkall(){ 
    var huang = document.all['huang']; 
    for(i = 0;i < huang.length;i++){ 
    if(huang[i].type == "checkbox") 
    { 
    huang[i].checked = true; 
    } 
    } 
    } 
    function centerall(){ 
    var huang = document.all['huang']; 
    for(i = 0;i < huang.length;i++){ 
    huang[i].checked = false; 
    } 
    } 
    //--> 
    </SCRIPT> 
    <BODY> 
    <input type="checkbox" name="huang" value="OFF"> 
    <input type="checkbox" name="huang" value="OFF"> 
    <input type="checkbox" name="huang" value="OFF"> 
    <br> 
    <input type="button" value = "checkall" onclick = "checkall();"> 
    <input type="button" value = "centerall" onclick = "centerall();"> 
    </BODY> 
    </HTML>

    看上面的代碼,當表單中有多個checkbox的時候是沒有問題的,但當其中只有一個checkbox的時候就會有問題,即點全選的時候不起作用,因為當其中只有一個checkbox的時候不再用document.all["huang"][0].checked來訪問,而是直接用document.all["huang"].checked來訪問了
    看當只有一個checkbox的時候應改成下面代碼

    <HTML> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    function 
    checkall(){ 
    var huang = document.all['huang']; 
    if(huang.length){ 
    for(i = 0;i < huang.length;i++){ 
    if(huang[i].type == "checkbox") 
    { 
    huang[i].checked = true; 
    } 
    } 
    }else{ 
    huang.checked = 
    true; 
    } 
    } 
    function centerall(){ 
    if(huang.length){ 
    for(i = 
    0;i < huang.length;i++){ 
    if(huang[i].type == "checkbox") 
    { 
    huang[i].checked = false; 
    } 
    } 
    }else{ 
    huang.checked = false; 
    } 
    } 
    //--> 
    </SCRIPT> 
    <BODY> 
    <input 
    type="checkbox" name="huang" value="OFF"> 
    [br] 
    <input 
    type="button" value = "checkall" onclick = "checkall();"> 
    <input 
    type="button" value = "centerall" onclick = "centerall();"> 
    </BODY> 
    </HTML>

    或者使用另一種形式,使用getElementsByTagName,如下:

    <HTML> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    function 
    checkall() 
    { 
    var huang = document.getElementsByTagName("input"); 
    for(i = 0;i < huang.length;i++){ 
    if(huang[i].type == "checkbox") 
    { 
    huang[i].checked = true; 
    } 
    } 
    } 
    function centerall() 
    { 
    var huang = document.getElementsByTagName("input"); 
    for(i = 0;i 
    < huang.length;i++){ 
    if(huang[i].type == "checkbox") 
    { 
    huang[i].checked = false; 
    } 
    } 
    } 
    //--> 
    </SCRIPT> 
    <BODY> 
    <input type="checkbox" name="huang" value="OFF"> 
    [br] 
    <input type="button" value = "checkall" onclick = 
    "checkall();"> 
    <input type="button" value = "centerall" onclick = 
    "centerall();"> 
    </BODY> 
    </HTML>

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    document.all與getElementById、getElementsByName、getElementsByTagName用法區別

    document.all與getElementById、getElementsByName、getElementsByTagName用法區別:理解這句話可看以下: 例1(這個可以讓你理解文檔中哪些是對象) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona
    推薦度:
    標簽: 用法 name document
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久久99精品成人片三人毛片 | 亚洲一区精品中文字幕| 热综合一本伊人久久精品| 国产在线精品一区二区不卡| 亚洲国产精品久久电影欧美| 久久国产成人精品国产成人亚洲| 国内精品久久久久影院免费| 少妇精品久久久一区二区三区 | 国产精品成人久久久久久久| 99热亚洲色精品国产88| 最新欧美性爱精品一区二区三区| 国内精品久久久久国产盗摄| 99久久综合国产精品二区| 国产精品久久久久久影院| 国产精品丝袜黑色高跟鞋| 亚洲av永久无码精品秋霞电影影院| 久久久久久青草大香综合精品| 国产精品成人国产乱一区| AAA级久久久精品无码区| 欧美国产日韩精品| 久久福利青草精品资源站免费| 99RE6热在线精品视频观看| 青青草原精品国产亚洲av| 亚洲午夜精品一级在线播放放| 日韩午夜高清福利片在线观看欧美亚洲精品suv | 精品久久久久久国产91| MM1313亚洲国产精品| 国产午夜精品无码| 国产精品禁18久久久夂久| 久久99精品久久久久子伦| 久久精品国产亚洲AV香蕉| 精品无码人妻一区二区免费蜜桃| 久久精品国产亚洲av麻豆色欲| 久久精品亚洲中文字幕无码麻豆| 亚洲AV永久无码精品水牛影视| 无码精品A∨在线观看中文| 日本VA欧美VA欧美VA精品| 精品欧洲av无码一区二区| 99久久精品国产高清一区二区 | 成人午夜精品视频在线观看| 国产韩国精品一区二区三区久久|