2010-09-16 82 views
2

下午,jQuery的嵌套阵列

我已经设置了下文中,当想然而嵌套IFS正在i到能够将阵列的标题传递给alterFields()函数,其方式函数将循环存储在数组中的每个字段并将CSS类相对于该数组应用(即,我已将相同的名称应用于数组作为css类)。不幸的是,如果我在css数组中使用字符串,那么alterfields中的$ .each循环遍历字符串的每个字符。

var assigned =[ 
"UAT Nominee" 
]; 

var applications = [ 
"Primary Application Affected", 
"Other Applications" 
]; 

var comments = [ 
"Comments" 
] 

var css = [assigned, applications, comments]; 

    $.each(css, function(x){ 
    var current_class = css[x]; 
    alterfields(current_class); 
    }); 

    function alterfields(array){ 
     $.each(array, function(i){ 
     var current_field = array[i]; 
    alert(current_field); 
      $("#WebPartWPQ2 .ms-formlabel nobr").filter(function() { 
       return $.text([this]) === array[i]; 
       }).closest('tr').toggleClass(array); 
      }); 
     } 

}); 

由于提前

回答

1

尝试是这样的吧。

var fields = { 
    assigned: [ "UAT Nominee" ], 
    applications: [ "Primary Application Affected", "Other Applications" ], 
    comments: [ "Comments" ] 
}; 

var field_keys = [ 'assigned', 'applications', 'comments']; 

$.each(field_keys, function(){ 
    alterfields(this); 
}); 

function alterfields(field_key){ 
    $.each(fields[ field_key ], function(){ 
    var current_field = this; 
    $("#WebPartWPQ2 .ms-formlabel nobr").filter(function() { 
     return $(this).text() === current_field; 
    }).closest('tr').toggleClass(field_key); 
    }); 
} 
+0

BBonified嗨,对于回来给你道歉。不幸的是,我无法完成所有工作,它明确地提取正确的值并循环遍历数组,但似乎没有应用任何css类。对不起这是我的代码,你可以找到任何东西? – Gary 2010-09-17 08:48:29

+0

0

你在做什么不太对。此行:

var css = [assigned, applications, comments]; 

使CSS成为这些数值数组的数字数组。要引用这些对象,你必须使用css [0],css [1]等。我相信你想利用javascript对象可以被当作命名数组的事实。所以你会这样做:

var css = { 
    "assigned": assigned, 
    "applications": applications, 
    "comments": comments 
}; 

然后,当你引用css [“assigned”]你得到你期望的数组数组。