cp3*_*cp3 17 jquery jquery-selectors dom-traversal
我在jQuery中使用prev()时遇到了麻烦,因为它没有选择正确的元素.
我的HTML结构如下:
<section id="about">
...
</section>
<hr>
<section id="contact">
...
</section>
Run Code Online (Sandbox Code Playgroud)
"活动"部分是#contact.我想选择上一节跳过<hr>
active = active.prev('section')似乎不起作用.我想我可能正在阅读错误的文档......
如果我拿出<hr>一切都很美妙.关于如何跳过<hr>on prev()的任何想法?
TIA
Bol*_*ock 26
我想我可能正在阅读错误的文档......
描述:获取匹配元素集中每个元素的前一个兄弟,可选择由选择器过滤.
所以,问题是它hr存在并被搜索.prev(),然后针对'section'选择器进行测试.
关于如何跳过
<hr>on prev()的任何想法?
你可以拨打.prev()一次跳过hr它,然后再次为该部分调用它:
active = active.prev().prev('section');
Run Code Online (Sandbox Code Playgroud)
或者使用.prevAll()并找到最接近的前一个(如果之前有任何其他部分发生):
active = active.prevAll('section').first();
Run Code Online (Sandbox Code Playgroud)
使用prevAll()代替
active = active.prevAll('section').first();
Run Code Online (Sandbox Code Playgroud)
来自 jQuery 文档:
prev() => “获取前一个兄弟元素”所以它只会获取第一个元素。
prevAll() => "获取匹配元素集合中每个元素的所有先前同级元素,可选择由选择器过滤。"
这就是为什么当您删除 时<hr>,它将与prev().
| 归档时间: |
|
| 查看次数: |
14593 次 |
| 最近记录: |