繁体   English   中英

从选定元素中获取索引

[英]get index out of selected elements

所以我有一个包含一些子元素的div,当我用jQuery选择一个子元素时,我想在选择器中获取它的索引

<div>
  <div class="red"></div>
  <div class="red"></div>
  <div class="red"></div>
  <div class="blue"></div>
  <div class="red"></div>
  <div class="blue"></div>
  <div class="blue"></div>
  <div class="red"></div>
</div>

因此,可以说我在主div中选择了最后一个元素。 如果我在上面调用index(),它将给我“ 7”,因为在所有子元素中索引为“ 7”。 但是现在让我们说我想基于其他“红色”元素获取索引,目标是返回值“ 4”,因为在所有“红色”元素中它是第五个。 我浏览了文档并没有找到很多东西,然后尝试将选择器放入index()方法中,例如index('。red'),但我什么都做不了。

好吧, 文档说:

.index( element )
元素要查找的DOM元素或jQuery对象中的第一个元素。

这样可以做:

selectedElements.filter('.red').index(this);

如果还没有selectedElements ,则可以选择相应的同级,例如:

$(this).parent().children('.red')

如果每个元素只有一个类,则过滤器可以是动态的:

var index = $(this).parent().children('.' + this.className).index(this); 

使用此处记录的.index()函数

对于上述方法,如果要获取红色类元素的索引,请使用$('div .red').index(elem);

$('div .red)将使用$('div .red)的红色类创建元素列表。 .index(elem)将在数组中搜索elem

使用id = test作为父项来运行它们

演示: http : //jsfiddle.net/T7fXR/

$('#test > div').each(function(){
    var thisClass=$(this).attr('class');
    $(this).css('background',thisClass );
    /* get index based on class*/
    var idx=$('.'+thisClass).index(this);
    $(this).text('Index= '+idx)

})

对我来说,这可以很好地使用给定的HTML:

$('div').eq(5)​​​​​​​​​​.index('.red') // 3

您可以将选择器放入.index()函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM