如何用jquery获取一个元素的祖元素(该组元素有多个兄弟元素),并删除其祖元素

图片描述

如何用jquery获取一个元素的祖元素(该组元素有多个兄弟元素),并删除其祖元素

实现点击垃圾箱删除该列的功能。

        $('.min_delete').on('tap',function(){
            $(this).parents('li').css('display','none');
            // $(this).parents('li').css('background','red');红色
            // alert($(this).parents('li').size()); 1

        })

自己获取到了祖先元素,但是设置display = none时,并不是我预期的那样,反而是下面的一个li也跟消失了。但给该元素设置背景颜色时,只有当前this的祖先元素li的背景色是红色的这是怎么回事?
将$('.min_delete')换成$('#min_delete')时可以将li隐藏,但不可能分别设置id的,请问各位有怎么办?

阅读 4k
4 个回答

刚才用jQuery 做了一个ul 放了4个li里面有input按钮,$(this).parents("li")可以取到你点击的对应的父元素li标签,会不会是jQuery版本问题?
或者是您li里镶嵌li标签了?

要是都没问题的话。用你的li对应的id做显示和删除。
var index = $(this).parents('li').index()+1;
$("#touch"+index).css('display','none');

这样的场景可以考虑OOP,把每条数据抽象成对象,对象有个删除按钮,点击后隐藏自己,每个li对应一个实例。这样就不用查找父元素了。

var $li = $('.min_delete').closest('li'),
    $otherLi = $li.siblings('li');
$li.remove();
$otherLi.css('background','red');

用jq click 事件试了一下没问题,换jqm tap事件出现问题,感觉应该是jqm 的tap的问题 给hide设了个setTimeout 大约300ms解决了,不过解决方式很水,同求大神们指点

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题