jQuery - 从一个列表项中获取活动类,并将此类设置为另一个列表

时间:2015-12-10 09:39:57

标签: jquery html

我有两个列表,包含5个项目

首先:

<ol class="controls">
    <li><a id="bullet-0">1</a></li>
    <li><a class="active" id="bullet-1">2</a></li>
    <li><a id="bullet-2">3</a></li>
    <li><a id="bullet-3">4</a></li>
    <li><a id="bullet-4">5</a></li>
</ol>

第二

<ul class="years">
    <li id="to-1973" class="year">1973</li>
    <li id="to-1983" class="year">1983</li>
    <li id="to-1994" class="year">1994</li>
    <li id="to-2004" class="year">2004</li>
    <li id="to-2015" class="year">2015</li>
</ul>

我想查看jQuery,如果第一个列表中的hasClass' 活动 ',然后将此类设置为第二个列表。

例如:
如果第一个列表中的第二项具有 活动 类,请将此类 活动 设置为第二个列表中的第二个项目,然后如果第一个列表中的第三项是 活动 ,则从第二个列表中删除活动并将其设置为第三个项目。

提前致谢! :)

4 个答案:

答案 0 :(得分:2)

似乎大部分答案都是针对列表项而不是锚(具有活动类)。

//get the index of the active control (target anchor, then get index of parent li)
var index = $('.controls a.active').parent().index();
//remove the current active from the years
$('.years li.active').removeClass('active');
//assign active to correct year
$('.years li').eq(index).addClass('active');

答案 1 :(得分:1)

您可以使用 .eq() .index()

$('.years > li').eq($('.controls > li > a.active').closest('li').index()).addClass('active');

从第一个列表中获取li索引,然后将addClass添加到第二个列表中的相同li索引

如果您需要在点击事件中使用它

$('.controls > li > a').on('click', function(){
   var ThisIt = $(this);
   $('.years > li').eq(ThisIt.closest('li').index()).addClass('active');
});

Working Demo

  

注意:不要忘记包含jquery

答案 2 :(得分:1)

您可以使用:

&#13;
&#13;
$('.controls > li').on('click', function() {
  $('.active').removeClass('active'); // first remove the active class
  $('a', this).addClass('active'); // now add the active class
  $('.years > li').eq($('.controls .active').parent().index()).addClass('active');
  // here you can add the active class to specific list item.
});
&#13;
.active {
  color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
First:

<ol class="controls">
  <li><a id="bullet-0">1</a>
  </li>
  <li><a id="bullet-1">2</a>
  </li>
  <li><a id="bullet-2">3</a>
  </li>
  <li><a id="bullet-3">4</a>
  </li>
  <li><a id="bullet-4">5</a>
  </li>
</ol>
Second:

<ul class="years">
  <li id="to-1973" class="year">1973</li>
  <li id="to-1983" class="year">1983</li>
  <li id="to-1994" class="year">1994</li>
  <li id="to-2004" class="year">2004</li>
  <li id="to-2015" class="year">2015</li>
</ul>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

尝试,

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access