Jquery 根据索引隐藏/显示div,可以';无法获得正确的索引

Jquery 根据索引隐藏/显示div,可以';无法获得正确的索引,jquery,Jquery,我以前从未遇到过这个问题,但我正在尝试基于索引隐藏/显示div。但是,它要么只处理第一行,然后再复制第一行,要么将每个节都计算为索引1 $(文档).ready(函数(){ $('.box高亮显示').hide(); $('.container.box')。单击(函数(){ var a=$(this.index(); $('.box').hide(); $('.box highlight').eq(a).show(); }); }); .box{ 身高:5公分; 背景:#e5; } 方框1 方

我以前从未遇到过这个问题,但我正在尝试基于索引隐藏/显示div。但是,它要么只处理第一行,然后再复制第一行,要么将每个节都计算为索引1

$(文档).ready(函数(){
$('.box高亮显示').hide();
$('.container.box')。单击(函数(){
var a=$(this.index();
$('.box').hide();
$('.box highlight').eq(a).show();
});
});
.box{
身高:5公分;
背景:#e5;
}

方框1
方框2
方框3
方框4
方框5
方框6
方框7
方框8
方框9
这是方框1的信息
这是方框2的信息
这是方框3的信息
这是方框4的信息
这是方框5的信息
这是方框6的信息
这是第7栏的信息
这是第8栏的信息
这是第9栏的信息
一个简单的

alert(a);
$(this.index()
之后显示为什么它总是显示第一个:a总是=0

索引()的文档中:

如果未向.index()方法传递任何参数,则返回值为 一个整数,指示第一个元素在 相对于其同级元素的jQuery对象

由于所有的
标记都位于不同的col-sm-4中,因此它们没有任何同级,因此始终为0(它们是)

下一段说明:

如果对元素集合和DOM元素调用.index(),或 传入jQuery对象,.index()返回一个整数,指示 传递的元素相对于原始集合的位置

如果选择器字符串作为参数传递,.index()将返回一个 指示jQuery中第一个元素的位置的整数 对象相对于选择器匹配的元素。如果 未找到元素,.index()将返回-1

因此,您可以将代码更改为:

var a = $(this).index(".container .box");
而且效果很好


这里有一个修改应用的JSFIDLE:

谢谢您的解释。我现在明白多了。