去重这句有必要吗?if (!$("p").length) return;
反复看了,觉得没有必要放这句【 if (!$("p").length) return;//去重】,放着觉得不够简洁。
老师、同学,你们有更清楚清楚的解释吗。
$("#bt1").click(function() { //if (!$("p").length) return; //去重 //通过detach方法删除元素 p = $("p").detach() });
bt1的点击事件中,【p】存储了所有p标签的内存模型对象;将【if (!$("p").length) return;
】这句去掉后,如果连续点击两次,在第一次点击的时候,【p】是可以取到页面中p元素的模型对象;在第二次点击时,由于页面中所有的p标签都已经被删除,【p】的被赋值为空。此时,再点击bt2,就不能将p元素重新添加到页面,因为【p】中没有存储p元素的内存模型对象。
另外,先执行一次p元素的换位,再提交一次后。先点击bt2会导致在按钮的上下均出现两个p元素。这是因为上一次执行后,【p】已经存储了p元素的内存模型对象,还没被清除,可在bt2的事件中加一句类似bt1的去重语句【if ($("p").length) return;】。
判断p(节点)是否存在, 不存在则返回, 存在则继续执行下面的删除操作, 这样写比较严谨