为什么先点击移动p元素后会出现四个p语句,没有达到去重的效果呀

来源:4-4 DOM节点删除之保留数据的删除操作detach()

慕粉3210663

2016-08-26 12:45

这个不是太理解

http://img.mukewang.com/57bfc92800013f9405660372.jpg

写回答 关注

5回答

  • 慕尼黑8414315
    2016-11-21 16:22:34

    的确是缓存问题,清了缓存就行

  • 冥oo冥
    2016-10-27 18:19:42

    1.直接点击右边按钮,出现下面添加成功的,是因为内存中还有刚才detach()的p对象,这儿的重置代码没删除内存,所以会造成有这种情况,可以刷新右边页面,不用重置代码。
    正常的直接点击右边按钮,其实是执行$("body").append(undefined);,页面中没有添加任何元素

    2.#bt1为什么去重,当有p节点的时候才执行删除且保存到变量p中,没有p节点的时候,不执行删除且保存。
    如果不去重,即没有p节点的时候,执行删除且保存到变量p中,那右边按钮就是无效的了

    3.#bt2为什么不去重,append在是调用原生的appendChild。如果调用appendChild()将已存在文档中的一个节点再次插入,那个节点将自动从它当前的位置删除并在新的位置重新插入:没有必要显式删除该节点。

  • vibrate
    2016-09-13 13:53:39

    应该是点击了移除,又重置了代码,这个时候内存里应该还保留了上次移除的两个p元素,再次操作会累加成4个p元素

  • 用户1136527
    2016-08-26 13:51:49

    因为detach()中只是页面不可见,但是这个节点还是保存在内存中,如果先点击移动P元素,就会将原来detach中的节点内容显示在页面上,因此你可以看到四句话,当你再点击删除的时候,删除的是四句话,所以这个节点内容就变为四句话了,当再点击移动元素就出现四句话。

  • xuexizhe88
    2016-08-26 13:44:06

    是你哪里敲错了吧,并没有4个p元素

jQuery基础(二)—DOM篇

jQuery第二阶段开启DOM修炼,了解创建、插入、删除与替换

114014 学习 · 590 问题

查看课程

相似问题