访问jQuery中类的第二个成员
Accessing the 2nd member of a class in jQuery?
我有一堆div,它们属于一个特定的类,比如tab。语义结构看起来像这样:
<div class = "tabs" >_______</div>
<div class = "tabs" >_______</div>
<div class = "tabs" >_____</div>
很容易访问类似的div的第一个和最后一个元素
$('.tabs:first') or
$('.tabs:last')
但是到了第二个(假设里面有多个其他div,那么除了第一个或最后一个之外的所有div)似乎会给我带来语法错误,比如:
$('.tabs:second') or $('.tabs:third')
不能预期地工作。
有人能指出这里出了什么问题吗?
尝试使用eq()
选择器,注意索引是基于零的:
$(".tabs:eq(1)");
有两种方法可以做到这一点,使用.eq()
方法或:eq()
选择器。
.eq()方法:
jQuery文档建议您这样做的方法是使用.eq()
方法。
// eq() is zero-based, so this would get the second element
$('.tabs').eq(1)
一个方便的特性是.eq()
也可以取负数,这会导致函数从末尾开始。
// This would take the second element from the end
$('.tabs').eq(-2);
:eq()选择器
jQuery还提供了一个:eq()
选择器,其工作方式与.eq()
方法基本相同。所以你也可以这样做:
$('.tabs:eq(1)')
请注意,尽管这是可行的,但最好使用.eq()
方法而不是选择器。该方法在现代浏览器中具有更好的性能,并且:eq()
选择器不支持负数,因此它在一定程度上受到了限制。
查看jQuery :first
选择器文档:http://api.jquery.com/first-selector/
您会注意到这是一个jQuery扩展,而不是CSS规范的一部分。此外,:first
等价于:eq(0)
,这意味着如果你想获得第二个元素,你可以用:eq(1)
来完成。
如果您不需要CSS选择器中的过滤器,您可以简单地使用.eq方法获取元素,如下所示:
$('.tabs').eq(0) // get the first element
$('.tabs').eq(1) // get the second element
$('.tabs').eq(2) // get the third element
$('.tabs').eq(-2) // get the second to last element
$('.tabs').eq(-1) // get the last element
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 为什么不'在JQuery中找到第二个css选择器的工作
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- CORS-重定向到第二个GET正在接收的页面
- 正则表达式与数字中的第二个点匹配
- 如何在react js中移动第二个组件
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 关闭第二个事件源上的第一个事件源's onopen方法
- D3从嵌套的JSON中绘制第二个圆环图
- IE11中的第二个调用取消了第一个Fetch API调用
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- 角度指令:指向第二个元素
- 时间选择器:如何通过更改第一个值来更改第二个值
- 我如何从字符串中选出第一个单词的第一个字母,然后再选出第二个单词
- 与网络界面相比,谷歌搜索API有时会重复第一个结果,有时会重复第二个结果
- 第二个存在条件不起作用
- 从第一个日期选择器定义第二个日期选择器的开始日期
- 如果未选择第一个下拉列表,则禁用第二个下拉列表
- Ember.js(v2.4.5)组件不是't错过第二个动作
- 访问jQuery中类的第二个成员