徐若兮
2016-12-21 16:47
tr是创建的行的对象
1.按照下面代码,
tr.lastChild.firstChild.onclick="deleteNode(this);";
tr.onmouseover="this.style.background='yellow'";
tr.onmouseout="this.style.background='#fff'";
console.log("打印tr.lastChild.firstChild.onclick内容:"+tr.lastChild.firstChild.onclick);
console.log("打印tr.onmouseover内容:"+tr.onmouseover);
console.log("打印tr.onmouseout内容:"+tr.onmouseout);
通过console.log输出的都为null,不能正常执行,为什么???
2.按照下面代码
tr.lastChild.firstChild.onclick=function(){
deleteNode(this);
}
tr.onmouseover=function(){
this.style.background="yellow";
}
tr.onmouseout=function(){
this.style.background="#fff";
}
通过console.log输出的都正常,能够正常执行。
3.通过下列代码
tr.lastChild.firstChild.setAttribute("onclick","deleteNode(this);");
tr.setAttribute("onmouseover","this.style.background='yellow'");
tr.setAttribute("onmouseout","this.style.background='#fff'");
通过console.log输出的都正常,能够正常执行。
第一个里面目测是无法将字符串类型的对象隐式转换为事件的类型。或者说程序并不知道你给OnClick事件赋值的结果是什么。
第二个,很明显的通过调用函数来执行你需要执行的删除操作,没有问题。
第三个,通过设置节点的属性,类似与你在创建节点的时候,就已经在里面写入onclick="deleteNode(this)"。
是我的一些看法,希望对你有所帮助。
JavaScript进阶篇
468195 学习 · 21891 问题
相似问题