欢迎来到HELLO素材网!
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > JS教程 >

DOM Scripting代码:隔行变色

发表于2014-06-12 09:05| 次阅读| 来源整理| 作者管理员

摘要:DOM Scripting一书中的表格代码,每隔一行就改变一次背景颜色,并且当鼠标经过某一行的时候会将该行突出显示 下面是变色表格的部分关键代码和注释:

实例JavaScript代码

addLoadEvent.js

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

highlightRows.js

//给table的行设置鼠标经过效果
function highlightRows() {
  if(!document.getElementsByTagName) return false;
  var rows = document.getElementsByTagName("tr");
  for (var i=0; i<rows.length; i++) {
    rows[i].onmouseover = function() {
      this.style.fontWeight = "bold";
    }
    rows[i].onmouseout = function() {
      this.style.fontWeight = "normal";
    }
  }
}
addLoadEvent(highlightRows);

stripeTables.js

function stripeTables() {
  if (!document.getElementsByTagName) return false;
  //取得所有table节点
  var tables = document.getElementsByTagName("table");
  for (var i=0; i<tables.length; i++) {
    var odd = false;
	//取得行
    var rows = tables[i].getElementsByTagName("tr");
    for (var j=0; j<rows.length; j++) {
	  //每隔一行设置一次class
      if (odd == true) {
        addClass(rows[j],"odd");
        odd = false;
      } else {
        odd = true;
      }
    }
  }
}
function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}
addLoadEvent(stripeTables);

演示:


运行代码保存代码提示:您可以先修改部分代码再运行