为什么bt2不需要去重?
求助:为什么bt2不需要去重?单击一次后,试过变量p中还有内容,但是再单击也不会再把p元素添加到页面?谢谢!
求助:为什么bt2不需要去重?单击一次后,试过变量p中还有内容,但是再单击也不会再把p元素添加到页面?谢谢!
2016-09-01
1.直接点击右边按钮,出现下面添加成功的,是因为内存中还有刚才detach()的p对象,这儿的重置代码没删除内存,所以会造成有这种情况,可以刷新右边页面,不用重置代码。
正常的直接点击右边按钮,其实是执行$("body").append(undefined);,页面中没有添加任何元素
2.#bt1为什么去重,当有p节点的时候才执行删除且保存到变量p中,没有p节点的时候,不执行删除且保存。
如果不去重,即没有p节点的时候,执行删除且保存到变量p中,那右边按钮就是无效的了
3.#bt2为什么不去重,append在是调用原生的appendChild。如果调用appendChild()将已存在文档中的一个节点再次插入,那个节点将自动从它当前的位置删除并在新的位置重新插入:没有必要显式删除该节点。
有同样的困惑,弄懂了一部分,还是没完全懂。以下是我的一些理解:
加了一行代码:
$("#bt2").click(function() {
console.log(p);
$("body").append( p);
});
在浏览器中调试运行发现,再次单击btn2时,console.log(p)是执行了的,而且运行到$("body").append( p);这一句时没有报错,而是顺利地运行了,只是页面没有变化。
所以,此时内存中应该还是有p的,而且每次btn2的点击事件都执行了,只是 语句$("body").append( p);没有得出我们所想的结果,问题应该在这,但我也还没找到原因,希望有大神能解答~
举报