有一个类的LI的JQuery索引号,然后计算另一个UL并分配一个类

时间:2015-07-29 10:37:05

标签: jquery jquery-ui

我有一个定制手风琴使用ul。我还在顶部有一个计数器,显示你所在的手风琴部分。即。 1-2-3-4-5并根据你所在的手风琴的哪个li强调它们。

我正在尝试获得手风琴LI的索引,该手风琴具有类' activeform'然后分配一个“活跃的”#39;类对应的UL li对应。

我已经做了很多寻求决心,但我不确定我是否做得对。它当然不起作用!

非常感谢任何帮助。

if($('.form-accordion li').hasClass('activeform')) {
                var number = $(this).index();
                if(number == $('.number-list li').index()) {
                    $('.number-list li').addClass('active');
                }
            }

3 个答案:

答案 0 :(得分:0)

我认为您遇到的问题是this处理程序中的if引用,它不引用li.activeform元素。您的第二个if条件也是错误的,因为它会为索引返回0

您需要根据其兄弟姐妹获取li.activeform索引,因此请使用$('.form-accordion li.activeform').index(),然后使用该索引获取正确的.number-list li元素



var idx = $('.form-accordion li.activeform').index();
if (idx >= 0) {
  $('.number-list li.active').removeClass('active'); //only if you want to remove the previous active class here
  $('.number-list li').eq(idx).addClass('active');
}

.active,
.activeform {
  color: green;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="form-accordion">
  <li>1</li>
  <li>2</li>
  <li class="activeform">3</li>
  <li>4</li>
</ul>
<ul class="number-list">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试使用下面的eq

var number = $('.form-accordion li.activeform').index();
$('.number-list li').eq(number).addClass('active');

答案 2 :(得分:0)

试试这个

$('.number-list li').removeClass('active');
$('.number-list li:eq('+$('.form-accordion li.activeform').index()+')').addClass('active');