首页 新闻 会员 周边

ie6有关td的name

0
悬赏园豆:20 [已解决问题] 解决于 2010-03-06 04:35

我给一个表格的第一列td加上name属性“col1”,这样我就可以用js操作表格的这一列元素了(合并相同内容)。

奇怪的是firefox可以成功合并,ie6完全没有反映,函数根本没有执行。不知道为什么,求解答!

问题补充: 页面源码: <table> <tr> <td name="col1">测试</td> </tr></table> <input type="button" onclick="test();" value="button"/> js代码: function test(){ var tds=document.getElementsByName("col1"); alert(tds.length); } 在ff弹出1 ie总是0
高凡凡高的主页 高凡凡高 | 初学一级 | 园豆:95
提问于:2010-03-03 15:15
< >
分享
最佳答案
0

贴你的javascript的代码,大家才可以知道你的问题来源的。

 

做了回复:<td name="col1">测试</td> 这句话改成<td id="col1" name="col1">测试</td> 其他代码不用变就会你在Firefox下的效果一样了。再修正下,其实td中name有没有都没有关系。 原因是在IE浏览器中div和table都是没有name属性值的。所以你要操作的话,建议你使用document.getElementById或者document.getElementsByTagName。其次在IE浏览器中id和name属性是不区分的。简单示例:

<input id="t" />
<input name="t" />
<input type="button" onclick="test();" value="button"/>
<script>
    function test() {
        var input = document.getElementsByName("t");
        alert(input.length);
    }
</script>

IE浏览器中是2,FF下是1.所以建议你不要用document.getElementsByName。使用document.getElementById或者document.getElementsByTagName来进行DOM/WebDom操作。

再补充两点:

1、HTML标签命名id和name在一个页面中最好都不要相同(避免IE混淆id和name的bug)
2、div和table等元素结合id和document.getElementsByTagName来使用,避免使用document.getElementsByName

收获园豆:20
西越泽 | 专家六级 |园豆:10775 | 2010-03-03 15:22
在吗?代码贴了帮我看看吧,谢谢~!
高凡凡高 | 园豆:95 (初学一级) | 2010-03-03 15:31
<td name="col1">测试</td> 这句话改成<td id="col1" name="col1">测试</td> 其他代码不用变就会你在Firefox下的效果一样了。
西越泽 | 园豆:10775 (专家六级) | 2010-03-03 15:46
非常感谢
高凡凡高 | 园豆:95 (初学一级) | 2010-03-06 04:34
其他回答(2)
0

在firefox下能成功合并,ie下没反应,说明你触发合并的那个代码在IE6下不兼容,建议发出源代码吗?这样方便找问题!

langford | 园豆:710 (小虾三级) | 2010-03-03 15:26
0

ie和firefox下对网页标准是不一样,建议统一使用id的方式。

风影极光 | 园豆:1573 (小虾三级) | 2010-03-03 16:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册