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

innerHTML+=添加内容,为什么会取消把相邻兄弟级的效果oDiv2事件没有了

innerHTML+=添加内容,为什么会取消把相邻兄弟级的效果oDiv2事件没有了

慕少1338687 2016-08-29 11:08:53
<body>  <div id="div1">    <div id="div2"></div>  </div>  <!-- <iframe src="http://www.lanou3g.com/"></iframe> -->  <script>    var oDiv1 = document.getElementById('div1');    var oDiv2 = document.getElementById('div2');    oDiv2.onclick = function(){      alert(123);    };    oDiv1.innerHTML += "<p>酱油文字。</p>";    /*       为什么 oDiv2 的事件没有了?    */
查看完整描述

1 回答

?
Caballarii

TA贡献1123条经验 获得超629个赞

你这是父子级,不是兄弟级,innerHTML直接把div2改搞没了

查看完整回答
反对 回复 2016-08-29
  • 慕少1338687
    慕少1338687
    如果用的是{=innerHTML}的话会把前面的覆盖,但是我用的是 {+=innerHTML},为什么还会把odiv2事件弄没了呢?
  • Caballarii
    Caballarii
    oDiv1.innerHTML += "<p>酱油文字。</p>";实际是吧div1里的html拿出来,加上一段以后,再用{=innerHTML}覆盖div1里的内容。 oDiv1.innerHTML += "<p>酱油文字。</p>";等价于oDiv1.innerHTML=oDiv1.innerHTML+ "<p>酱油文字。</p>"; 虽然div2那边的html看上去一样,但div2已经不存在了
  • 慕少1338687
    慕少1338687
    有点明白啦,谢谢大神!
  • 1 回答
  • 0 关注
  • 1339 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信