JQuery вложенный массив - PullRequest
       2

JQuery вложенный массив

2 голосов
/ 16 сентября 2010

днем,

Я установил следующее: вложенные if работают, однако, когда я хотел бы иметь возможность передавать заголовок массива в функцию alterFields (), таким образом, функция будет циклически проходить через каждое поле, сохраненное в массив и применить класс CSS относительно этого массива (т.е. я применил к массиву то же имя, что и класс css). К сожалению, если я использую строки в массиве css, $ .each в alterfields циклически перебирает каждый символ строки.

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);
            });
        }

});

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 16 сентября 2010

Попробуйте что-то вроде этого.

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 голосов
/ 16 сентября 2010

То, что вы делаете, не совсем правильно. эта строка:

var css = [assigned, applications, comments];

делает CSS числовым массивом из этих числовых массивов. Чтобы ссылаться на эти объекты, вы должны будете использовать css [0], css [1] и т. Д. Я верю, что вы хотите использовать тот факт, что объекты javascript могут рассматриваться как именованные массивы. так что вы бы сделали что-то вроде этого:

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

Затем, когда вы ссылаетесь на css ["assign"], вы получаете ожидаемый числовой массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...