我在使用一些单选框, <tr>
                                   <td width="36%" align="center">责任感</td>
                                <td align="center"><input type="radio" name="DeFen[43]" id="DeFen[33]" onclick="DeFenOnClick('YTD—PG', '30', '21');" value="1"></td>
                                <td align="center"><input type="radio" name="DeFen[43]" id="DeFen[34]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="2"></td>
                                <td align="center"><input type="radio" name="DeFen[43]" id="DeFen[35]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="3"></td>
                              </tr>
                                <tr>
                                   <td width="36%" align="center">正  直</td>
                                <td align="center"><input type="radio" name="DeFen[44]" id="DeFen[36]" onclick="DeFenOnClick('YTD—PG', '30', '21');" value="1"></td>
                                <td align="center"><input type="radio" name="DeFen[44]" id="DeFen[37]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="2"></td>
                                <td align="center"><input type="radio" name="DeFen[44]" id="DeFen[38]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="3"></td>
                              </tr>
                                <tr>
                                   <td width="36%" align="center">廉  洁</td>
                                <td align="center"><input type="radio" name="DeFen[45]" id="DeFen[39]" onclick="DeFenOnClick('YTD—PG', '30', '21');" value="1"></td>
                                <td align="center"><input type="radio" name="DeFen[45]" id="DeFen[40]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="2"></td>
                                <td align="center"><input type="radio" name="DeFen[45]" id="DeFen[41]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="3"></td>
                              </tr>
<tr>
                                   <td width="36%" align="center">勤  奋</td>
                                <td align="center"><input type="radio" name="DeFen[46]" id="DeFen[42]" onclick="DeFenOnClick('YTD—PG', '30', '21');" value="1"></td>
                                <td align="center"><input type="radio" name="DeFen[46]" id="DeFen[43]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="2"></td>
                                <td align="center"><input type="radio" name="DeFen[46]" id="DeFen[44]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="3"></td>
                              </tr>
                                <tr>
                                   <td width="36%" align="center">工作热情</td>
                                <td align="center"><input type="radio" name="DeFen[47]" id="DeFen[45]" onclick="DeFenOnClick('YTD—PG', '30', '21');" value="1"></td>
                                <td align="center"><input type="radio" name="DeFen[47]" id="DeFen[46]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="2"></td>
                                <td align="center"><input type="radio" name="DeFen[47]" id="DeFen[47]" onclick="DeFenOnClick('YTD—PG', '30', '21');"  value="3"></td>
                              </tr>
使用javascript的getElementById()时,它怎么会给我弄错了呢?感觉是给弄串了
比如说,
getElementById("DeFen[46]").value得到的是name="DeFen[46]" id="DeFen[42]" 的值。不知道这个是我的哪个地方出了问题?

解决方案 »

  1.   

    我把id="DeFen[45]" 改为id="DeFenID[45]" ,就不会出现串了的情况
      

  2.   

    不可能吧,你用getElementsByName试试,或者是浏览器问题
      

  3.   

    这个不一定的,你在IE是这个,在IE中getElementsByName是获取所有的名为"DeFen[46]"的元素,返回数组,而getElementById则返回getElementsByName的第一个元素,在Firefox中就不一样,你可以试试,在火狐中的结果就是对的!
      

  4.   

    还是要好好研究一下不同浏览器之间获取DOM节点的不同方式的!
      

  5.   


    <script language="javascript">
    alert(document.getElementsByName("DeFen[46]")[0].value);
    alert(document.getElementById("DeFen[46]").value);//IE中二者是等同的
    </script>
      

  6.   

    楼主,getElementById()是通用的,要求id是唯一的,这样就不会出现问题,和name没有关系的,我感觉你的代码没有问题,弄串了这种情况的概率几乎为零!要是真是这样的话你就把id改的简单一点!上面提到的getElementsByName在IE6.0下有严重的问题,它仅仅检查<input>和<img>元素,所以不要用!!
      

  7.   

    参见:http://www.jslab.org.cn/?tag=byIdAndbyName
      

  8.   

    id和name本来就没有规定必须一致,强烈推荐用用看jQuery,各个浏览器兼容的!
      

  9.   

    id与name可以不一致,没关系。当你要取得那个节点时,如果是id则可以用document.getElementById("id"),如果是name也可以用document.all("name");不过,如果页面上有多个相同的name则得到的是一个数组。这还要看浏览器去的。
      

  10.   

    IE对getElementById("a")的支持好像是 返回所有id="a" 以及 name="a"的值
    FF可以区分开id和name