用javascript把html元素做為陣列

網站架設,免費空間申請,架站技術交流區

ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

用javascript把html元素做為陣列

文章ETERNAL » 2010-12-20 12:00 pm

前幾天做了一個奇怪的測試

很久以前就知道IE會把name相同的元素做為陣列

舉例:
代碼: 選擇全部
<form name="a"></form>
<form name="a"></form>
<form name="a"></form>


在javascript使用的情況下
document.getElementsByName("a").length 會返回3

使用時可以這樣寫
document.a[0]
document.getElementsByName("a")[0]

同理在div中也可以用相同的方式來做
代碼: 選擇全部
<div name="a"></div>
<div name="a"></div>
<div name="a"></div>


但是這方式在firefox中確不行

在firefox中必須改成
代碼: 選擇全部
<div id="a"></div>
<div id="a"></div>
<div id="a"></div>

document.getElementById("a").length 會返回3

若要讓IE與firefox都同時支援可以這樣寫
代碼: 選擇全部
<div id="a" name="a">1</div>
<div id="a" name="a">2</div>
<div id="a" name="a">3</div>

document.getElementsByName("a").length IE與firefox都會返回3(很神奇吧)

代碼: 選擇全部
    var a1=document.getElementsByName("a");
    if(a1.length>0)
    {
       for(var i=0;i<a1.length;i++)
       {
          alert(a1[i].innerHTML);
       }
    }


會依序彈出 1 2 3 訊息


水色論壇 http://www.et99.net
簡恩峻分享

回到 架站討論

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 8 位訪客