很久以前就知道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 訊息