innerHTML属性改变后,之前用setAttribute设置的事件响应失效的问题

luoluonet 2005-07-07 10:59:32
看一个简单的例子说明这个问题:

----------------------------------------------------------
<div id="d">
<table>
<tr>
<td id="t">aaa</td>
</tr>
</table>
</div>
<script language="javascript">
t.setAttribute("onmouseover", function() {alert("a")});
alert(t.onmouseover);
str = "";
d.innerHTML += str;
alert(t.onmouseover);
</script>
----------------------------------------------------------

程序中d.innerHTML += str一句操作了innerHTML属性以后,那个td之前用setAttribute方法设置的onmouseover响应函数的就失效了,第二个alert出来是null。不知道是什么原因,有没有什么解决办法,请各位指教,谢谢!
...全文
313 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoluonet 2005-07-16
  • 打赏
  • 举报
回复
感谢各位!
cxz7531 2005-07-09
  • 打赏
  • 举报
回复
innerHTML从新设置,dom就重构了
springwood 2005-07-09
  • 打赏
  • 举报
回复
你的innerHTML把你的setAttribute给冲掉了.把innerHTML赋完值后再setAttribute.
<div id="d">
<table>
<tr>
<td id="t">aaa</td>
</tr>
</table>
</div>
<script language="javascript">
t.setAttribute("onmouseover", function() {alert("a")});
alert(t.onmouseover);
str = "";
d.innerHTML += str;
t.setAttribute("onmouseover", function() {alert("a")});
alert(t.onmouseover);
</script>
JK_10000 2005-07-08
  • 打赏
  • 举报
回复
d.innerHTML += str;


---->>>>

d.insertAdjacentHTML("beforeEnd",str);
Minisheep 2005-07-08
  • 打赏
  • 举报
回复
t=document.getElementById("t");
d=document.getElementById("d");

一开始加上这两句就没问题

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧