Javascript Can';使用getElementsByName()在IE中切换表行的显示

Javascript Can';使用getElementsByName()在IE中切换表行的显示,javascript,html,dhtml,Javascript,Html,Dhtml,我想根据选择框的值显示和隐藏表的行,这在Firefox中有效,但在IE中无效: <select onChange="javascript: toggle(this.value);"> <option value="cat0">category 0</option> <option value="cat1">category 1</option> </select> <table> <tr name="

我想根据选择框的值显示和隐藏表的行,这在Firefox中有效,但在IE中无效:

<select onChange="javascript: toggle(this.value);">
 <option value="cat0">category 0</option>
 <option value="cat1">category 1</option>
</select>

<table>
<tr name="cat0">
  <td>some stuff v</td>
  <td>some stuff v</td>
</tr>
<tr name="cat0">
  <td>some stuff d</td>
  <td>some stuff d</td>
</tr>
<tr name="cat1">
  <td>some stuff a</td>
  <td>some stuff a</td>
</tr>
<tr name="cat1">
  <td>some stuff b</td>
  <td>some stuff b</td>
</tr>
</table>
<script type="text/javascript">
function toggle(category)
{
    // turn everything off
    for (var i = 0; i < 2; i++)
    {
        var cat = document.getElementsByName('cat' + i);
        for (var j = 0; j < cat.length; j++)
            cat[j].style.display = 'none';
    }

    // turn on category chosen
    var cat = document.getElementsByName(category);
    for (var i = 0; i < cat.length; i++)
        cat[i].style.display = '';
}
// start by showing cat0
toggle('cat0');
</script>

类别0
第一类
一些东西
一些东西
一些东西
一些东西
一些东西
一些东西
一些东西b
一些东西b
功能切换(类别)
{
//关掉一切
对于(变量i=0;i<2;i++)
{
var cat=document.getElementsByName('cat'+i);
对于(var j=0;j
如果第二个for循环中有表行,则需要将display属性设置为
表行
IE不允许您使用
document.getElementsByName
方法访问表行。如果您使用ID而不是名称,它将起作用。请参阅本页,以获取您所需的代码:

实际上您可以使用一个IE bug!只需为每个元素设置名称和id(两者必须具有相同的值!)。 例如:
现在
getElementsByName
也将在IE中工作


我知道这是个老问题,但我5分钟前就想解决这个问题了。因此它可能会帮助某些人:p

tr
元素没有name属性。这是无效的HTML。嗯,你每天都会学到一些新的东西,但我认为还需要将
display
属性设置为
table row
。@Seattleonard
table row
不受IE支持-