2017-01-23 57 views
1

我需要后,我比较两个ID添加一个类后添加一类他们,我写了这个使用jQuery找到一个ID

$(document).ready(function(){ 
    $(".tab-content .InfoUp:first").addClass('in active'); 
     $("#InfoUpHeight .InfoUpFrom:first").addClass('active'); 
    $('.InfoUpFrom a').click(function(){ 
     var idArray = []; 
     var i = ""; 
     $('.InfoUp').each(function() { 
      idArray.push(this.id); 
     }); 
     var TabReview = $('.InfoUpFrom.active a i').attr('id'); 
     for (var i = idArray.length - 1; i >= 0; i--) { 
      if(idArray[i] == TabReview){ 
       $("#InfoUpHeight .InfoUpFrom:first").removeClass('active'); 
       $(".InfoUp:first").removeClass('in active'); 
       $(".InfoUp #"+idArray[i]).addClass('in active'); 
       $(TabReview).addClass('active'); 
      } 
     } 

    }); 
}); 

我对代码进行测试,发现这些ID,但没有添加类。 谢谢。

+0

'$( “InfoUp#” + idArray [I])addClass( '在有源');'中添加了两个类和活性。这是预期的ryt –

+0

不是一个答案,但你不能在你的班级名称中有空格,你会想要将'in active'改为'inactive' –

+0

它应该是$('#'+ TabReview).addClass('活性'); –

回答

0

你已经在变量TabReview中用$()定义了,如果你在for循环中取消了$和()的TabReview,你的代码应该可以工作。

+0

TabReview是一个持有ID属性值的字符串,而不是jQuery对象 – Andriy

1

附加 '#',以jQuery选择($('#' + TabReview).addClass('active');):

for (var i = idArray.length - 1; i >= 0; i--) { 
    if (idArray[i] === TabReview) { 
    $("#InfoUpHeight .InfoUpFrom:first").removeClass('active'); 
    $(".InfoUp:first").removeClass('in active'); 
    // $(".InfoUp #" + idArray[i]).addClass('in active'); 
    $(".InfoUp #" + TabReview).addClass('in active'); 
    $('#' + TabReview).addClass('active'); 
    } 
} 
+0

是的,但问题是类没有添加到'$(“。InfoUp#”+ idArray [i])。addClass('in active');'和是我需要添加它的地方 – sittelle

+0

你可以用你的代码创建一个plunker吗?所以我可以检查它。如果没有,尝试调试你的代码:1)是否是TabReview非空字符串? 2)确保你传递if(idArray [i] === TabReview)条件,3)检查$(“。InfoUp#”+ idArray [i])。size() - 看到你至少有一个这样的元素, 4)检查$('#'+ TabReview).size() – Andriy