看手册上
id可以应用到大部分HTML标签,
而name应用的范围就小了
A, APPLET, BUTTON, FORM, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, LINK, MAP, OBJECT, PARAM, RT, RUBY, SELECT, TEXTAREA 尽量不要在非上述标签上使用name属性。
举例如下:
<div name="a">1234</div>
<div name="a">1234</div>
<div name="a">1234</div>
<div name="a">1234</div>
<script language="javascript">
<!--
var ds = document.getElementsByName("a");
for(i=0;i<ds.length;i++)
alert(ds[i].innerHTML);
//-->
</script>该段代码在firefox里运行正常,在IE里就没有反应,原因是在IE中用getElementsByName("a")取不到上面的DIV,可能是IE不承认name属性可应用到DIV上,这点不知道firefox为什么会这样认为。
而下面的更奇怪
<div id="a">1234</div>
<div id="a">1234</div>
<div id="a">1234</div>
<div id="a">1234</div>
<script language="javascript">
<!--
var ds = document.getElementsByName("a");
for(i=0;i<ds.length;i++)
alert(ds[i].innerHTML);
//-->
</script>
该段代码在ie中可以出现结果,显示IE认为id才是div应有的属性,但这种结果显示不符合逻辑,该段代码在firefox中没有结果,
如何解决:
1。给div同时加上id和name
2. 换一种思路,只将name用于规定的标签上。