为了账号安全,请及时绑定邮箱和手机立即绑定

关于window.onload加载问题

先把参考代码贴出:

window.onload = function(){

Highlight();

}  

function addOne(obj){ 

   var tbody = document.getElementById('table').lastChild;  

var tr = document.createElement('tr');  

 

var td = document.createElement("td");

td.innerHTML = "<input type='text'/>";

tr.appendChild(td);

 

td = document.createElement("td");  

td.innerHTML = "<input type='text'/>";

tr.appendChild(td);

 

td = document.createElement("td");

td.innerHTML = "<a href='javascript:;' onclick='deleteRow(this)'>删除</a>";

tr.appendChild(td);   

 

tbody.appendChild(tr);   

Highlight();

    }


function deleteRow(obj){

   var tbody = document.getElementById('table').lastChild;  

var tr = obj.parentNode.parentNode;

tbody.removeChild(tr);

}

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";

}  

}

问题1:

按照这段代码:window.onload = function(){

Highlight();

} 那应该只有Highlight();才能运行啊,为什么addOne(obj),deleteRow(obj)都可以运行成功。

2、在addOne(obj)函数结尾的Highlight();,怎么有种乱入的感觉,跟addOne(obj)函数一点关系都没有,是什么意思?


正在回答

1 回答

1. window.onload = function(){Highlight();是为了给本来就有的两个tr加上mouseover事件,

2. addOne(obj)函数结尾的Highlight()是为了给每次新添加的tr加上事件;

addOne(),deleteRow(),这两个函数直接写在了html标签里,不光要看js代码,还要看看html代码


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468059    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

关于window.onload加载问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信