2 una chou una_chou 于 2017.09.19 23:55 提问

jquery怎么同时删除两个元素或撤销上一次的事件

我用jquery 点击事件,每点击一次,同时添加了两个元素,这两个元素是在不同的父元素里面的。
现在根据需求想要做撤销事件,怎么可以同时删除这两个添加的元素,或者有没有什么方法可以撤销上一次的点击事件发生的事情?

$(document).on('keyup', function (event) {
    var e = window.event ? event : e;
    if (e.ctrlKey && event.keyCode == 90) {
        $(".pointForLeft:last").remove();
        $(".pointForUp:last").remove();
    }
}) 

我用这个代码想要同时删除那两个元素,但是只能先删除$(".pointForLeft:last")元素,并且在全部删除后,才会去删除$(".pointForUp:last")元素,
有没有什么办法可以让这两个元素同时删除的?

5个回答

showbo
showbo   Ds   Rxr 2017.09.20 08:19

可以合并一条语句,但是内部还是分2次删除

   $(".pointForLeft:last,.pointForUp:last").remove();
playboyanta123
playboyanta123   2017.09.20 09:05

不知道你为什么要搞这么复杂,你应该是想有一个撤销删除或者添加的功能吧,那你要把每次的操作的元素先缓存到全局变量里面,然后如果下一次操作开始了再去把上一次操作的元素remove

cr4blm123
cr4blm123 回复unaJ: 删除数组最后一个元素简单,数组对象.slice(0, 数组对象.length - 1);
2 个月之前 回复
una_chou
una_chou 是 定义一个全局数组,将元素标签添加到数组中,对吗?那怎么删除数组中的最后一个的元素标签啊
2 个月之前 回复
u013337858
u013337858   2017.09.20 09:32

obj.remove()

una_chou
una_chou 将标签添加到obj吗?obj.remove() 是把obj里面的东西删除吧?怎么可以把html中的元素删除啊?
2 个月之前 回复
b100522
b100522   2017.09.20 09:39
$(document).on('keyup', function (event) {
    var e = window.event ? event : e;
    if (e.ctrlKey && event.keyCode == 90) {

        //给这两个元素附上自定义属性选择器,然后利用属性选择器删除(或者你在添加这两个元素的时候就附上相同的class,利用class删除)
         $(".pointForLeft:last").attr("data-name","test");
         $(".pointForUp:last").attr("data-name","test");

         $("[data-name='test']").remove();
    }
})

b100522
b100522 回复unaJ: 祝你好运
2 个月之前 回复
una_chou
una_chou 回复椎名小由奈: 是按一下删除一个,再按一下,再删除第二个元素,我想要的是按一下,同时删除两个元素
2 个月之前 回复
b100522
b100522 回复unaJ: 删除两个元素的时候,中间会有卡顿?
2 个月之前 回复
una_chou
una_chou 这样也是一个个的删除,不能同时
2 个月之前 回复
wuqiongqiong_
wuqiongqiong_   2017.09.20 10:40

可以设计一个函数 内部删除两个元素,然后一点击函数执行

una_chou
una_chou 封装的函数,不是也要像我那样删除吗?这样结果不是一样的吗?
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片