疯小蕾
2017-03-07 15:29
function Highlight(){
var tbody = document.getElementById('table').lastChild;
trs = tbody.getElementsByTagName('tr');
for(var i =1;i<trs.length;i++){
trs[i].onmouseover = function(){
this.style.backgroundColor ="#f2f2f2";
}
trs[i].onmouseout = function(){
this.style.backgroundColor ="#fff";
}
}
}
</script>
</head>
<body>
<table border="1" width="50%" id="table">
<tr>
<th>学号</th>
<th>姓名</th>
<th>操作</th>
</tr>
<tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="deleteRow(this)">删除</a></td>
</tr>
<tr>
<td>xh002</td>
<td>刘小芳</td>
<td><a href="javascript:;" onclick="deleteRow(this)">删除</a></td>
</tr>
</table>
<input type="button" value="添加一行" onclick="addOne()" />
1这里面的this的用法,到底指的是哪个对象告诉一下,
2然后为什么要得到getElementById("table").lastChild。这个对象不是表格中最后一个<tr>标签吗??
3herf="javascript:;" 是什么意思谢谢。。
个人理解:
this是它所在位置的对象,也就是<a>标签
.lastChild,应该是网页默认<table>里有一个<tbody>标签,而<tr>标签在<tbody>之内,只不过是隐藏了<tbody>,其实你按没有<tbody>编写程序也是一样的,
var tbody = document.getElementById('table').lastChild;
trs = tbody.getElementsByTagName('tr');
这两句可以写成一句trs = document.getElementsByTagName('tr');我觉得实现的效果一样。
href="javascript:;",这个我不懂,我就理解为,要打开的网址实际上是一个javascript函数
1. this指当前对象 , 下面的 this 表示 trs[i] 对象
trs[i].onmouseover = function(){ this.style.backgroundColor = '#ccc'; }
2. document.getElementById('table').lastChild; 实际上是<tbody>标签 , 你可以右键table位置查看
var tbody = document.getElementById('table').lastChild;
3. href="javascript:;" 是一个伪协议,他会执行JavaScript后面的 js 代码 , 比如 href="javascipt:alert('aaa');" 他就会出现弹窗显示 aaa , 后面没代码就表示什么都不执行 , 然后执行 onclick 事件 .
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题