2010-09-17 50 views
0

我有一個在IE7中工作的Javascript函數,但在Firefox中給我帶來麻煩。表格行顯示切換在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

您的文章留下了很多細節,但我猜你的HTML看起來像這樣

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

name顯然不是一個有效的屬性table(沒有提到here和visual studio intellisense同意),所以Firefox會忽略該屬性,並且找不到任何名稱爲listTable的元素。在Firefox執行中未定義displayTable

的Internet Explorer然而,它是錯誤的做事永無止境的堅持,看到了id屬性有'listTable'的值,並認爲不夠好,符合getElementsByName。 IE實際上並沒有考慮你給予你的表的name屬性 - 它只是幸運而已。刪除id屬性將導致您的方法在IE中也失敗。

+0

這確實有幫助,但我仍然堅持我將如何能夠調用表中使用的JavaScript。我做了編輯以顯示在html – MrM 2010-09-17 19:18:25

+0

中的表,用'document.getElementById('listTable');'替換'document.getElementsByName('listTable')[0];''。無論如何,這是做這件事的首選方式。 – lincolnk 2010-09-17 20:08:19