2011-12-07 30 views
0

我想将所有的id与类中的非活动类保存在一个数组中,然后我想遍历数组并检查特定的值,例如非活动的id将如下所示:菜单级0-0-1,菜单级0-0-2,菜单级0-1-3 我想保存所有这些ID,然后将其分割为:获取特定类的id并使用jquery将其存储在数组中

if (parentCategoryid == inactiveCategoryid) { 
      //$('.menu-level-0-0-'+ inactiveCategoryid).css('background-image', 'url(/Themes/DarkOrange/Content/images/cat-ul-active.png)'); 
      $('.inactive ').css('color', 'white !Important'); 
     } 

主动ID将:

 var inactiveID = $('.inactive').attr('id') 

     var splitInactive = inactiveID.split('-'); 
     var inactiveParentCategoryid = splitInactive[3]; 
     var inactiveCategoryid = splitInactive[4]; 

分裂它做一下检查,如果检查通过添加类后只有一个,这就是为什么我不需要一个数组,可以轻松地进行访问:

var activeId = $('.active').attr('id') 
     var split = activeId.split('-'); 
     var parentCategoryid = split[3]; 
     var categoryid = split[4]; 

任何一个可以帮助我在以正确的方式整理出这个问题或其他任何建议,将不胜感激。

+2

将层次结构级别存储在您的ID中似乎很奇怪。为什么你不使用类? class =“level1”,class =“level2”等等。然后让所有的东西都在一个特定的层次上会很简单。 – mrtsherman

+0

@mrtsherman我也对一般的选择感到好奇。但假设有一个特定的原因,ID会正常工作,因为每个值都是唯一的。如果在这些选择的基础上进行繁重的DOM操作,性能会更高。 –

回答

1

您可能需要使用.each()

var activeId = new Array(); 
$('.active').each(function(){ 
    var currentId = this.id; 
    var splitedId = currentId.split('-'); 
    activeId.push($(this).id); 
}); 
+1

this.id更简洁 – ScottE

+0

我该如何拆分和匹配它? –

+0

@ScottE好点。修正! –

4

The map function非常适合这项任务:

var items = $('.iactive').map(function() { 
     return this.id; 
    }).get(); 

items现在是一个数组。

相关问题