gpt4 book ai didi

jQuery:使用 closest()、find() 和 children() 获取特殊父项的 sibling

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:09 25 4
gpt4 key购买 nike

我遇到了一个问题,如何使用 .closest、.find 和其他 jQuery 方法查找 URL。页面结构为:

ul
ul
ul.good
li
...
li
li
<a href="/findme">findme</a>
ul
.
.
.
ul
li
a <-this

如您所见,有许多内部列表。我需要找到 ul.good 的 li 的 href 值。问题是,如果我使用 closest() 找到 ul.good,我将无法找到作为 this 父级的确切 li,我从那里“来到”了 ul.good。

所以,问题是如何从一个<-this 中获取/findme 值。可能吗?

澄清一下,a href/findme 是 ul.good 中的一级。

a<-这个更深了(级别不知道)。

谢谢。

最佳答案

一种可能的方法是收集所有 li -ul.good 的 child 第一:

$goodUl = $this.closest('ul.good');
$lis = $goodUl.children();

... 然后将它们用作 closest参数:

$liParentOfThis = $this.closest($lis);

这会给你育儿$li , 然后找到 a应该是微不足道的:

$a = $liParentOfThis.children('a');

这有点简洁,但效率不高,因为您在链上向上移动了两次。您可以使用循环使其更快:

$check = $this; 
while (($check = $check.parent().closest('ul')).length) {
if ($check.is('.good')) break; // already went up too far
$a = $check.prev('a');
if ($a.length) break; // found it
}

在每一步中,您都会寻找下一个最接近的 ul(父级是必要的,因为 .closest 查找从元素本身开始)并检查它是否具有 a 的前一个兄弟节点。你需要。如果是,则搜索完成。

关于jQuery:使用 closest()、find() 和 children() 获取特殊父项的 sibling ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50986720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com