Jquery将clasc添加到更高的id动态

时间:2017-02-25 13:45:13

标签: jquery

我正在尝试将类添加到id动态。问题是我需要为当前和下一个ID添加一个类。我有这段代码:

if ($('#id_0').hasClass('active')){
 $('#id_0').removeClass("active");
 $('#id_1').addClass("active");
 }
 else if ($('#id_1').hasClass('active')){
 $('#id_1').removeClass("active");
 $('#id_2').addClass("active");
 }

等。

所以我试着像这样动态写它:

$('.my-class').each(function(i,e) {
    if ($('#id_' + (i)).hasClass('active')){
    $('.#id_' + (i)).removeClass("active"); 
    $('#id_' + (i+1)).addClass("active"); 
    }

问题是这条线不能正常工作

$('#id_' + (i+1)).addClass("active");

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:0)

正在运行但不动态的代码是:

if ($('.title-slider#id_0').hasClass('active')){
 $('.title-slider#id_0').removeClass("active");
 $('.title-slider#id_1').addClass("active");
 }
 else if ($('.title-slider#id_1').hasClass('active')){
 $('.title-slider#id_1').removeClass("active");
 $('.title-slider#id_2').addClass("active");
 }
 else if ($('.title-slider#id_2').hasClass('active')){
 $('.title-slider#id_2').removeClass("active");
 $('.title-slider#id_3').addClass("active");
 }
  else if ($('.title-slider#id_3').hasClass('active')){
 $('.title-slider#id_3').removeClass("active");
 $('.title-slider#id_4').addClass("active");
 }
  else if ($('.title-slider#id_4').hasClass('active')){
 $('.title-slider#id_4').removeClass("active");
 $('.title-slider#id_5').addClass("active");
 }
  else if ($('.title-slider#id_5').hasClass('active')){
 $('.title-slider#id_5').removeClass("active");
 $('.title-slider#id_6').addClass("active");
 }
  else if ($('.title-slider#id_6').hasClass('active')){
 $('.title-slider#id_6').removeClass("active");
 $('.title-slider#id_7').addClass("active");
 }

所以我试着这样写:

$('.title-slider').each(function(i,e) {
    if ($('.title-slider#id_' + (i)).hasClass('active')){
    $('.title-slider#id_' + (i)).removeClass("active"); 
    $('.title-slider#id_' + (i+1)).addClass("active"); 
    }
 });

最后一行不起作用。只有前两行可以。

答案 1 :(得分:0)

这个解决方案是:

$('.title-slider.active').removeClass(function(){
  $(this).next().addClass('active');
  return 'active';