这么写
$('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元素直接移除没了。
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元素!
用控制台运行,发现 p.css('color','red').text('p1通过remove处理后,点击该元素,事件丢失');
是错的,因为这个变量p没有css这个方法,因为p不是jQuery对象