表行显示切换在Firefox中不起作用

时间:2010-09-17 14:48:31

标签: javascript asp.net-mvc firefox html-table

我有一个可以在IE7中运行的Javascript函数,但在Firefox中给我带来了麻烦。

JAVASCRIPT

function vehicleSelected() {
   var ddlSelect = document.getElementById('ddlSelect');
   var displayTable = document.getElementsByName('listTable')[0];
   var strAuto = ddlSelect.options[ddlSelect.selectedIndex].value;
   alert("ok, so far");
   var rows = displayTable.getElementsByTagName("tr");
   alert("this alert is not triggered");
   var rowData = document.getElementById(strData);
   for (var i = 0; i < rows.length; i++) {
      rows[i].style.display = 'none';
   }
   rowData.style.display = '';
}

我不确定其余的代码是如何处理的。有没有通用的方法来切换表格行的显示,还是我需要一个单独的Firefox?

修改

<table id="listTable">

1 个答案:

答案 0 :(得分:1)

你的帖子遗漏了很多细节,但我猜你的HTML看起来像这样

<table id='listTable' name='listTable'>

name显然不是table的有效属性(不提及here且视觉工作室intellisense同意),因此firefox会忽略该属性,并且找不到任何名为{{ 1}}。在firefox执行中未定义listTable

然而,由于它坚持不懈地坚持做错事,因此看到displayTable属性的值为id,并认为该值足以符合'listTable'的条件。 IE实际上并没有考虑你给你的桌子的getElementsByName属性 - 它只是运气好。删除name属性也会导致您的方法在IE中失败。