Javascript 为什么最近()在遍历树之前先查找自身元素

Javascript 为什么最近()在遍历树之前先查找自身元素,javascript,jquery,html,Javascript,Jquery,Html,我正在寻找为什么在遍历树之前先查找第一个自身元素 例如:当我单击children元素时,我想要fadeOut父元素div元素,但是children元素太像div,而fadeOut的子元素也是如此 $(文档)。在(“单击”、“.close”上,函数(){ $(this).closest(“div”).fadeOut(); }); .feed{ 宽度:200px; 高度:200px; 背景:红色; 位置:相对位置; } .结束{ 位置:绝对位置; 排名:0; 右:0; } X 这是因为从当前元素

我正在寻找为什么在遍历树之前先查找第一个自身元素

例如:当我单击children元素时,我想要
fadeOut
父元素
div
元素,但是children元素太像
div
,而
fadeOut
的子元素也是如此

$(文档)。在(“单击”、“.close”上,函数(){
$(this).closest(“div”).fadeOut();
});
.feed{
宽度:200px;
高度:200px;
背景:红色;
位置:相对位置;
}
.结束{
位置:绝对位置;
排名:0;
右:0;
}

X
这是因为从当前元素开始遍历DOM。您可能需要替换,因为它将以父元素开头

$(this).parents("div").fadeOut();
值得注意的是,
.parents()
方法返回零个或多个元素,而
.closest()
将返回零个或一个元素。因此,您可能希望在
.parents()
方法之后链接
.first()
,以获得第一个匹配:

$(this).parents("div").first().fadeOut();
$(文档)。在(“单击”、“.close”上,函数(){
$(this.parents(“div”).first().fadeOut();
});
.feed{
宽度:200px;
高度:200px;
背景:红色;
位置:相对位置;
}
.结束{
位置:绝对位置;
排名:0;
右:0;
}

X

如前所述,
最近的()
以当前元素开始。您的选择器不够模糊,因此它会停在那里

针对特定的容器类而不是直接的祖先div可能更安全(并且更广泛地有用)

$(this).closest(".feed").fadeOut()

您必须更具体一点,当您不确定哪一个元素(div本身、内部标签、image或smth.else)将接收到单击,但希望始终具有相同的操作时,将使用closest(),以便closest可以指向完全相同的元素(与父方法相反)

$(文档)。在(“单击”、“.close”上,函数(){
$(此).feed(“.feed”).fadeOut()
});
.feed{
宽度:200px;
高度:200px;
背景:红色;
位置:相对位置;
}
.结束{
位置:绝对位置;
排名:0;
右:0;
}

X
1.

X 2.
非常感谢。我更了解:-)