2010-03-09 58 views
1

我想在javascript中切換表格的顯示行。我該怎麼做呢?如何循環顯示錶格行來切換顯示樣式?

<script type="text/javascript" language="javascript"> 
     function vehicleSelected() { 
      var autoSelect = document.getElementById('vehicleSelect'); 
      var strAuto = autoSelect.options[autoSelect.selectedIndex].value;         
      var rowAuto = document.getElementById(strAuto);    
      for (var i = 4; i < tableList.rows.length; i++) { 
       //I am not sure how to access the id for comparison to rowAuto      
       if (//table row == strAuto) { 
        rowAuto.style.display = ''; 
       } else { 
        rowAuto.style.display = 'none'; 
       } 
      } 
     }  
    </script> 
<table id="tableList"> 
    <tr id="optionA"><td>Display Row A</td></tr> 
    <tr id="optionB"><td>Display Row B</td></tr> 
    <tr id="optionC"><td>Display Row C</td></tr> 
    <tr id="optionD"><td>Display Row D</td></tr> 
</table> 

回答

3

首先,考慮jQuery。這對這樣的事情有很大的幫助。

其次,如果你不打算使用jquery,然後你想做的事是這樣的:

function vehicleSelected() { 
     var autoSelect = document.getElementById('vehicleSelect'); 
     var strAuto = autoSelect.options[autoSelect.selectedIndex].value;         
     var rows = document.getElementById('tableList').getElementsByClassName('TR');    
     for (var i = 0; i < rows.length; i++) {  
      rows[i].style.display='none'; // note: better to use a css class here 
     } 
     var selectedRow = document.getElementById(strAuto); // assuming that the values are the same as the row Id's. 
     selectedRow.style.display = ''; // again, better to use a Css style. 
    } 
+0

+1使用jQuery – 2010-03-09 20:49:50

1

你可以用jQuery輕鬆地做到這一點:

function vehicleSelected() { 
    var autoSelect = //... 
    var strAuto = //... 

    $("#tableList tr").hide().filter("#" + strAuto).show(); 
} 
1

如果我correctry瞭解你,這應該幫助你。

var table = document.getElementById('tableList'); 
for(var i=0; i<table.rows.length; i++){ 
    if (table.rows[i].attributes["id"].nodeValue == strAuto) { 
     table.rows[i].style.display = ''; 
    } else { 
     table.rows[i].style.display = 'none'; 
    } 
}