使用closest替换parent

Posted 千と千寻の

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用closest替换parent相关的知识,希望对你有一定的参考价值。

尽量不要使用parent去获取DOM元素,如下代码:
var $activeRows = $this.parent().parent().children(".active");
这样的代码扩展性不好,一旦DOM结构发生改变,这里的逻辑分分钟会挂,如某天你可能会套了个div用来清除浮动,但是没想到导致有个按钮点不了了就坑爹了。
应该用closest,如:
var $activeRows = $this.closest(".order-list").find(".active");
直接定位和目标元素的最近共同祖先节点,然后find一下目标元素就好了,这样就不会出现上面的问题,只要容器的类没有变。如果你需要处理非自己的相邻元素,可以这么搞:
$this.closest("li").siblings("li.active").removeClass("active");
$this.addClass("active");

 

以上是关于使用closest替换parent的主要内容,如果未能解决你的问题,请参考以下文章

closest和parents方法区别

jQuery中的closest()和parents()的差别

jQuery查找——parent/parents/parentsUntil/closest

jQuery_parent() parents() closest()区别

DOM——遍历.parent().parents().closest()和.next()

在RecyclerView项目中替换片段