首页 新闻 搜索 专区 学院

在指定的元素下面查找样式,如果有该样式,则获得它的索引

0
[已解决问题] 解决于 2014-04-03 10:27

<ul class="navlist">
<li class="navs_li">首页</li>
<li class="navs_li">Jquery插件</li>
<li class="navs_li on">Jquery学堂</li>
<li class="navs_li">学习资料库</li>
</ul>

 

如上,我想查找第三个LI的索引,求大神指导该怎样写JQ

 

if($('.box_163css ul li').hasClass('on')){
var i=$(this).index();
alert(i);
var a1=160*i;
$(".s_line").animate({left:a1},200);
}

我这样写,为什么索引一直是-1,不管on是在哪个位置,索引值都是-1

路过春秋的主页 路过春秋 | 初学一级 | 园豆:10
提问于:2014-03-30 13:31
< >
分享
最佳答案
0

可能是this的问题,你用console.log(this)看一下this指向的是什么?

奖励园豆:5
dudu | 高人七级 |园豆:37797 | 2014-03-30 13:51

弱弱的问一下,求大神解答。console.log(this)怎么用?

路过春秋 | 园豆:10 (初学一级) | 2014-03-30 14:02

唉,输出来是undefined,可是我明明有class=on呀,奇怪。

路过春秋 | 园豆:10 (初学一级) | 2014-03-30 14:04

@路过春秋: 这里不应该用this

dudu | 园豆:37797 (高人七级) | 2014-03-30 14:19

@dudu: 

if($(".box_163css ul li").hasClass("on")){
var i=$('.navlist .on').index();
var a1=96*i;
$(".s_line").animate({left:a1},200);
}

真是这样的,谢谢了哈。

路过春秋 | 园豆:10 (初学一级) | 2014-03-30 15:24

@路过春秋: 

建议你修改 一下

var $navlist = $(".navlist");

var $liOn = $navlist.find(".on");

if($liOn){

var i = $liOn.index();

var a1 = 96*i;

$(".s_line").animate({left:a1},200);

}

小乔布斯 | 园豆:446 (菜鸟二级) | 2014-03-30 22:23
其他回答(2)
0
1 var index=0;
2 $("ul.navlist li").map(function(e){
3    if($(this).hasClass('on')) index=e;
4 });
ZenTree | 园豆:204 (菜鸟二级) | 2014-03-30 22:56
0

$(".on").index(".navs_li")

con | 园豆:240 (菜鸟二级) | 2014-03-31 11:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册