最好就是給你的功能有意義的名稱。另外,當按鈕或其他元素更適合時(例如,樣式化跨度),不要使用A元素。 A的用於導航(錨和鏈接),而不是用於做事。
下面是您正在嘗試使用rowIdex進行操作的示例。突出顯示的刪除和添加可以放在同一個循環中,或者您可以記住閉包中以前突出顯示的行,以使其效率更高一些。
但是,如果你處理的行少於100行(或可能更多),它不會對感知性能產生任何影響。
<script>
function hilightRows(id, rowindexes) {
var table = document.getElementById(id);
var rows;
if (table && rowindexes) {
// Remove any current highlighting
for (var j=0, jLen = table.rows.length; j < jLen; j++) {
table.rows[j].style.backgroundColor = '';
}
// Add new highlighting
for (var i=0, iLen = rowindexes.length; i<iLen; i++) {
table.rows[rowindexes[i]].style.backgroundColor = 'red';
}
}
}
</script>
<button onclick="hilightRows('t0', [1,2,5])">1, 2, 5</button>
<button onclick="hilightRows('t0', [3,0])">3, 0</button>
<button onclick="hilightRows('t0', [])">Remove highlight</button>
<table id="t0">
<tr><td>.....
<tr><td>.....
<tr><td>.....
<tr><td>.....
<tr><td>.....
<tr><td>.....
<tr><td>.....
</table>
將此添加爲評論而不是答案...看看jQuery。它使這樣的任務變得非常簡單! – 2012-02-19 21:57:24
使用jQuery的任務,需要幾個字節的「純」JavaScript是一個過度的衝擊 – Michal 2012-02-19 22:50:13