用于查找在 jQuery 元素集中具有特定类的元素的索引的单行代码
A one-liner for finding the index of an element that has certain class within a jQuery set of elements?
我有一个这样的任意结构:
<h2>Foo</h2>
<p>Foo foo</p>
<p>Foofoo</p>
<h2>Bar</h2>
<h2 class=highlighted>Baz</h2>
<p>Baz</p>
<h2>Quux</h2>
<p>Quux quux</p>
在我的JS中,我已经在jQuery对象中拥有所有h2元素:
var $headings = $('h2');
现在我需要找到这些标题中的哪一个具有突出显示的类。
因此,对于上述结构,突出显示了第三个标题,因此我希望收到答案 2(JS 计数从零开始)。
我已经设法解决了这项任务:
function foo($jQueryObject) {
var number;
$jQueryObject.each( function(index, element) {
if ($(element).hasClass('highlighted')) {
number = index;
return false;
}
});
return number;
}
演示:http://jsbin.com/acaGeJi/1/
但我相信有一种更优雅的方式,比如$headings.index('.highlighted');
.你能建议一下吗?
可以使用 map
方法获取索引:
var index = $jQueryObject.map(function(i, e){
return e.hasClass('highlighted') ? i : null;
})[0];
您也可以使用 index
方法,但随后您必须首先获取要查找的元素,因此这意味着您要查找它两次:
var index = $jQueryObject.index($jQueryObject.filter('.highlighted'));
您可以使用
$.index
函数
var search = $( ".highlighted" );
alert( "Index: " + $( "h2" ).index( search ) );
这对
我有用:
$('.highlighted').index('h2');
JSFIDDLE 演示
相关文章:
- 如何索引jquery中的每个元素
- JavaScript DOM:在容器中查找元素索引
- 通过javascript中的元素索引访问eventListener中的元素
- 将页面元素索引到 JSON 对象?或者jQuery选择器它每次
- jQuery将相同的类添加到两个不同容器中的同一元素索引中
- 获取小元素索引直到数组长度
- jQuery获取元素索引,尽管包装器/父元素
- 更改数组中某些元素(索引)的顺序
- 访问具有公共类名的元素数组中的元素索引
- 访问循环的内部的ES6数组元素索引
- 列表类元素(索引).渐变(某些速度)不起作用
- javascript中的表单元素索引,用于jquery.change函数
- 获取文本块中的元素索引
- 用主干JS .get模型事件连接元素索引
- 从81个元素索引的数组中获取行和列值
- 如何使用javascript获得元素索引
- 使用类和子类获取元素索引
- Mootools从父元素获取子元素索引
- 如何在Javascript中获得一组固定元素的元素索引
- 使用jQuery更改列表元素索引