jquery - 如何在jquery中按类获取倒数第二个元素?
问题描述
我有一些img
标签有一个名为targetMe
. 现在在给定时间,可以有许多图像共享这个类。现在我可以通过这样做来按类定位最后一个元素
$('.targetMe').last()
但我想定位这个类的倒数第二个元素。所以我试着这样做
$('.targetMe').last().prev()
根据这个堆栈溢出帖子Select second class element via jquery,我试过这个
$('.targetMe:nth-child(2)')
但我无法按类获得倒数第二个元素。我究竟做错了什么?
解决方案
如prev()
文档中所述:
获取匹配元素集中每个元素的前一个兄弟元素。如果提供了选择器,则仅当它与该选择器匹配时,它才会检索前一个兄弟。
但在你的情况下,targetMe
不是“紧接在前面的兄弟姐妹”。中间有文字和图标。因此,我们需要按原样使用prevAll()
:
获取匹配元素集中每个元素的所有先前兄弟,可选地由选择器过滤。
因此,它将尝试根据类查找所有“前面的兄弟”,而不仅仅是“直接在前面的兄弟”,然后,我们可以使用:first
选择器仅获取第一个匹配项,这将是基于类的倒数第二个元素.
工作演示:
$('.targetMe').last().prevAll('.targetMe:first').css('background', '#f99')
div { margin: 5px; border: 1px solid #CCC; padding: 4px 8px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="targetMe">A</div>
Some Text Here...
<div class="targetMe">B</div>
Some Text Here...
<div class="targetMe">C</div>
推荐阅读
- python - 使用文件匹配括号
- ios - HERE iOS SDK:Places API make*Request 总是返回 nil
- vb.net - VB.NET:如何打印复选框文本和复选框状态
- c# - 如何仅使用 c#(不使用 AWS 开发工具包)从 amazon s3 下载文件
- javascript - IOS 键盘显示时禁用正文滚动
- batch-file - 不要批量正确读取下一行
- ios - 如何在 IOS Swift 中的 WKWebView 顶部添加边距
- python - 在 Tkinter Python 中延迟加载图像
- java - Java 可以自动包装一个对象并作为 throws 异常的一部分抛出吗?
- swift - 如何从数据源填充 TableView 单元格?我目前收到错误