使表格橫列兩色交錯的Javascript

Bit Size Standards今天有一篇Automatic coloured rows,介紹如何讓表格橫列的底色自動由不同的顏色交錯形成,亦即如本範例中,單數列為灰色,而雙數列為白色。

要完成這個效果,只要在網頁中加入以下這段javascript即可:

<script language="JavaScript" type="text/javascript">

window.onload = colorRows;
function colorRows() {
    var myTR = document.getElementsByTagName('tr');
    for (var i=0;i<myTR.length;i++) {
            if (i%2) {
                    myTR[i].className = 'rowTint';
            }
    }
}
</script>

也可以下載我已經存好的js檔案(請按右鍵,另存新檔),然後在網頁的head元素間把這個檔案include進來即可。

<script language="JavaScript" type="text/javascript" src="(檔案存放路徑)auto-colored-rows.js">
</script>

除了加入這段script之外,還要在CSS檔案裡面增加.rowTint這個樣式,本例的設定為:

.rowTint {
	background-color: #ccc;
	}

經過這樣的設定後,單數列的表格底色便為灰色,而雙數列的底色則為未經設定的白色了。

這個方法同樣適用於清單元素(<li>),各位可以把script中的getElementsByTagName(’tr‘)替換成getElementsByTagName(’li‘)試試看。

 
 
 

“使表格橫列兩色交錯的Javascript”有 2 則回應

  1. Dala
    30. September 2008 at 23:27

    請問如果雙數列也要設另一個顏色的話 那語法要增加成怎樣呢?
    另外 我加邊框的話發現有下和右都會重複,變成下和右的邊框很粗,其他正常~這該怎麼解決呢?
    兩色交錯的語法我找好久了~~真是感謝你!

  2. yoren
    1. October 2008 at 01:12

    @Dala,

    試試看:
    if (i%2) { myTR[i].className = ‘rowTint’; } else {myTR[i].className = ‘rowDark’;}

    就是雙數列加上另一種樣式,至於框線重疊的問題,請在css加上:
    table, th, td{
    border-collapse: collapse;
    }

歡迎留言: