<script language="javascript">
function test() {
var txt = document.getElementsByName("txt");
for(i = 0; i < txt.length; i++) {
alert(txt[i].innerHTML);
}
}
</script>
<div style="cursor:pointer" onclick="test()">wwww</div>
<div name="txt">11</div>
<div name="txt">22</div>
<div name="txt">33</div>
<div name="txt">44</div>
这个代码在FF上没问题,在IE上没反应,也没有错误图标。
我这个写得不符合W3C标准吗?
如果要在IE上也识别的话该怎么写????

解决方案 »

  1.   

    应该是:name 对input标签才有效
      

  2.   

    表单我也知道,但是一定得用div以及其他的html标签,
    getElementsByTagName也不行,因为我那页面里有很多div标签,但我只要获取那几个。
      

  3.   

    name的设计初衷就是为了给post、get提供参数。以测试的结果为准。IE就只能遍历div的name属性了。
      

  4.   

    解决了虽然不是标准的写法,但是我们不能总面向程序,而更得面向客户。<div style="cursor:pointer" onclick="test()">wwww</div>
    <div name="txt" id="txt">11</div>
    <div name="txt" id="txt">22</div>
    <div name="txt" id="txt">33</div>
    <div name="txt" id="txt">44</div>
      

  5.   

    不建议使用document.getElementsByName();
    最好使用document.getElementsByTagName();因为document.getElementsByName("");不兼容。不只是DIV,而且Span也获取不到。
    如下所示<html>
    <body>
    <div style="cursor:pointer" onclick="test()">wwww</div>
    <div name="txt">11</div>
    <div name="txt">22</div>
    <div name="txt">33</div>
    <div name="txt">44</div>
    <span name="txt1">11</span>
    <span name="txt1">11</span>
    <span name="txt1">11</span>
    <input type="text" name="txt1" value="1111" />fdsf
    <input type="text" name="txt1" value="2222" />dfdsf
    <input type="text" name="txt1" value="3333" />dsfdsfs
    <script>
    function test() {
        var txt = document.getElementsByName("txt1");
        for(i = 0; i < txt.length; i++) {
            alert(txt[i].innerHTML);
        }
    }
    </script>
    </body>
    </html>
    只有input标签可以获取到。
      

  6.   


    不建议给HTML元素取相同的ID,因为这样的结果是不可预知的。
      

  7.   


    我这里不能使用getElementsByTagName,因为同样的tag很多,我不能把他们全拿出来吧?