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

为什么 var p =$('p:first').detach(); 不能直接换成$('p:first').detach();

这么写

      $('p').click(function(e){ 

        alert(e.target.innerHTML)

    })

    var p;

    $('button:first').click(function(){

    $('p:first').remove();

    p.css('color','red').text('p1通过remove处理后,点击该元素,事件丢失');

    $('body').append(p);    

    }) ;  

结果点击第一次remove按钮的时候,第一个p元素有append回来,第二个p元素直接移除没了。

正在回答

2 回答

var p =$('p:first').detach();这句话是把detach删除的第一个p元素保存起来,要用的时候直接用append(p)是把保存好的删除的p元素在加到body里面

你直接var p;p.css('color','red').text('p1通过remove处理后,点击该元素,事件丢失');是自己新建了一个新的p元素,只有你手动加进去的东西,不是通过remove或者detach删掉的。所以你再append加进去的只是你自己建的p元素!


1 回复 有任何疑惑可以回复我~
#1

淡水狗 提问者

非常感谢!
2017-07-23 回复 有任何疑惑可以回复我~

用控制台运行,发现    p.css('color','red').text('p1通过remove处理后,点击该元素,事件丢失');

是错的,因为这个变量p没有css这个方法,因为p不是jQuery对象

0 回复 有任何疑惑可以回复我~
#1

黑鱼26

那为什么运行之后效果会出现呢
2018-07-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础(二)—DOM篇
  • 参与学习       114014    人
  • 解答问题       590    个

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

进入课程

为什么 var p =$('p:first').detach(); 不能直接换成$('p:first').detach();

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信