每一个HTML元素都使用id来进行一个标注,随后可以通过document.getElementById(“ID名称”)取得指定的ID元素对象,取得元素对象之后就可以对其进行操作。
但是document.getElementById()只能取得一个元素信息。
范例:观察如下代码
event1.html
<!doctype html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta name="description" content=event.html""> <meta name="keywords" content="event,html,js"> <title>javascript的程序开发之事件处理</title> <script type="text/javascript" src="event1.js"></script> </head> <body> <div id="infoTab"> <table border="1" cellPadding="5" cellspacing="0" bgcolor="F2F2F2" width="50%"> <tr id="infoTr"> <td>姓名</td> <td>年龄</td> <td>学历</td> </tr> <tr id="infoTr"> <td>张三</td> <td>20</td> <td>小学</td> </tr> <tr id="infoTr"> <td>李四</td> <td>21</td> <td>初中</td> </tr> <tr id="infoTr"> <td>王五</td> <td>22</td> <td>高中</td> </tr> <tr id="infoTr"> <td>赵六</td> <td>23</td> <td>大学</td> </tr> </table> </div> </body> </html>
此时代码之中,最为方便的做法是所有的行都是用了一个id标注”id=infoTr”
范例:不完整的程序,每次只能单独改变一个单元格的高亮色
event1.js
/** *obj: 要改变颜色的对象 *color: 要改变成的颜色 */ function changeColor (obj,color) { if (obj != undefined) { obj.bgColor = color; }; } window.onload = function(){ //动态的绑定事件 //取出tr元素对象 var trObj = document.getElementById('infoTr'); //只能给一个tr绑定事件,因为id是唯一的 //绑定鼠标进入事件 trObj.addEventListener('mouseover',function(){ changeColor(this,'red'); },false); //绑定鼠标离开事件 trObj.addEventListener('mouseout',function(){ changeColor(this,'F2F2F2'); },false); }
效果是:当鼠标只有进入第一个单元格时,高亮色成了红色,离开就变为原来的颜色
分析:本程序使用了“document.getElementById(“infoTr”)”取得了id对象,但是在代码中对于这个“infoTr”的Id值有多个,而document.getElementByiD(“infoTr“),只能够取得第一个,多以如果要想取得全部,则应该采用document.all(“iD”)形式完成(指的是id有重复的时候),返回的是对象数组。
范例:完整的程序,可以改变所有单元格的高亮色
event1.js
/** *obj: 要改变颜色的对象 *color: 要改变成的颜色 */ function changeColor (obj,color) { if (obj != undefined) { obj.bgColor = color; }; } window.onload = function(){ //动态的绑定事件 //取出tr元素对象数组 var trObj = document.all('infoTr'); //给所有的tr绑定事件,通过id取出的是一个对象数组 for (var i = 0; i < trObj.length; i++) { //绑定鼠标进入事件 trObj[i].addEventListener('mouseover',function(){ changeColor(this,'red'); },false); //绑定鼠标离开事件 trObj[i].addEventListener('mouseout',function(){ changeColor(this,'F2F2F2'); },false); }; }
效果是:当鼠标进入任意一个单元格时,高亮色成了红色,离开就变为原来的颜色
如果使用DOM解析之后会有更加方便的做法,但是现阶段一定要记住,只能够依靠id取得内容。如果id只有一个,就使用document.getElementById(“iD”)返回单个对象;如果使用document.all(“iD”),就返回一个对象数组。