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

luoluonet luoluonet 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
看一个简单的例子说明这个问题:

----------------------------------------------------------
<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。不知道是什么原因,有没有什么解决办法,请各位指教,谢谢!
...全文

相关推荐

通过js动态创建标签,并设置属性方法

当我们在写jsp页面时,往往会遇到这种情况:从后台获取的数据个数不确定,此时在前端写jsp页面时也就不确定怎么设计了。这个时候就需要通过js动态创建标签: 1.创建某个标签:如下在body中创建一个div的事例; [removed] function fun(){ var frameDiv = document.createElement("div");//创建一个标签 var bodyFa = document.getElementById("bodyid");//通过id号获取frameDiv 的父类(也就是上一级的节点) bodyFa .appendChild(frameDiv)

weixin_38641561

js 动态添加元素(div、li、img等)及设置属性的方法

把一串 html 标签赋给一个 javascript 变量,除属性的值要用转义的双引号外,某些时候字符串还很长,显得有些复杂。如果用 js 动态添加元素,就不会有那么复杂的字符串出现,代码阅读性强一点,也容易理解。 网页是由 html 标签一层层组成的,js 也可以动态添加一层层的诸如 div、li、img 这样的标签。其实,不管是什么 html 标签,js 动态创建的方法都差不多,接着就先从动态添加 div 开始。 一、js 动态添加元素div <div id=parent></div>   function addElementDiv(obj) {     var parent =

weixin_38689551

javascript 三种方法实现获得和设置以及移除元素属性

获得和设置以及移除元素属性在操作dom的过程中会经常遇到吧,为了提高工作的效率本文整理了一些快捷操作方法和大家一起分享,感兴趣的朋友可以参考下哈

weixin_38522552

IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性

如设置class属性 代码如下:el.setAttribute(‘class’, ‘abc’); 在IE6/7中样式“abc”将没有起作用,虽然使用el.getAttribute(‘class’)能取到值“abc”。 又如for属性 代码如下: <label>姓名:</label>&lt;input type=”checkbox” id=”name”/&gt; [removed] var lab = document.getElementsByTagName(‘label’)[0]; lab.setAttribute(‘for’, ‘name’); [removed] 我们知道当lab设置了for属

weixin_38655998

用JS动态设置CSS样式常见方法小结(推荐)

本文给大家总结了js动态设置css样式的常见方法,非常实用,对js设置css样式相关知识感兴趣的朋友一起学习吧

weixin_38645198
评论 5
收藏 已收藏
分享
返回顶部
luoluonet
JavaScript 87,983 成员 224,681 内容