如何使用 jQuery 找到最近的同级类?
这是我要使用的粗略 HTML:
<li class="par_cat"></li>
<li class="sub_cat"></li>
<li class="sub_cat"></li>
<li class="par_cat"></li> // this is the single element I need to select
<li class="sub_cat"></li>
<li class="sub_cat"></li>
<li class="sub_cat current_sub"></li> // this is where I need to start searching
<li class="par_cat"></li>
<li class="sub_cat"></li>
<li class="par_cat"></li>
我需要从 .current_sub
开始遍历,找到最近的前一个 .par_cat
并对其进行处理。
.find("li.par_cat")
返回 .par_cat
的全部负载(我在页面上有大约 30 个)。我需要瞄准一个人。
Here's the rough HTML I get to work with:
<li class="par_cat"></li>
<li class="sub_cat"></li>
<li class="sub_cat"></li>
<li class="par_cat"></li> // this is the single element I need to select
<li class="sub_cat"></li>
<li class="sub_cat"></li>
<li class="sub_cat current_sub"></li> // this is where I need to start searching
<li class="par_cat"></li>
<li class="sub_cat"></li>
<li class="par_cat"></li>
I need to traverse from the .current_sub
, find the closest previous .par_cat
and do stuff to it.
.find("li.par_cat")
returns the whole load of .par_cat
(I've got about 30 on the page). I need target the single one.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
尝试:
用您的标记测试它:
将会用“woohoo”填充最近的前一个
li.par_cat
。Try:
Tested it with your markup:
will fill up the closest previous
li.par_cat
with "woohoo".使用 prevUntil() 将使我们能够获得一个远方兄弟姐妹,而不必获得全部。我有一个特别长的集合,使用 prevAll() 时 CPU 消耗太大。
如果匹配,它将获取第一个前面的同级元素,否则它将获取匹配的元素之前的同级元素,因此我们只需使用 prev() 再备份一个即可获取所需的元素。
Using prevUntil() will allow us to get a distant sibling without having to get all. I had a particularly long set that was too CPU intensive using prevAll().
This gets the first preceding sibling if it matches, otherwise it gets the sibling preceding the one that matches, so we just back up one more with prev() to get the desired element.
尝试
Try
我认为所有的答案都缺少一些东西。我更喜欢使用这样的东西,
这样您就不必在选择器中添加 :first 并且更易于阅读和理解。
prevUntil() 方法也比使用 prevAll() 具有更好的性能
I think all the answers are lacking something. I prefer using something like this
Saves you not adding :first inside the selector and is easier to read and understand.
prevUntil() method has a better performance as well rather than using prevAll()
你可以按照这个代码:
你可以从中得到想法。
You can follow this code:
You can get idea from this.