2013-10-10 4 views
0

Я использую объекты в JQuery для хранения специальной информации:Заменить JQuery объект часть пути с переменной

var objectFields = { 
    venues: { 
     type: "select", 
     options: { 
      objects: function() { 
       var elementsObject = $("dl.list-venues").find("select"); 
       var elementsObjectNames = []; 
       for (var i=0;i<elementsObject.length;i++) { 
        elementsObjectNames[i] = $(elementsObject[i]).attr("name"); 
       } 
       return elementsObjectNames; 
      }, 
      select: 1 
     }, 
     errorMessage: "You need to select either a Venue or Venue Group" 
    },... 

В настоящее время я могу получить доступ к «ErrorMessage» с помощью:

console.log(objectFields.venues.errorMessage); 

Но я Кроме того, необходимо, чтобы получить доступ к нему, заменив элемент пути с переменной:

console.log(objectFields.aVariableName.errorMessage); 

Однако, попытался этот метод, в дополнение к м любые другие, у меня был нулевой успех.

Любые идеи, как я могу это сделать?

+0

'objectFields [aVariableName] .errorMessage' – zzzzBov

+0

@zzzzBov Я пробовал это, и он дает ошибку. –

+0

Затем вам нужно прочитать сообщение об ошибке, чтобы узнать, что такое другая проблема. Вы уверены, что 'aVariableName' имеет правильное значение, когда вы его вызывали? – zzzzBov

ответ

3

Используйте кронштейны

objectFields[aVariableName].errorMessage; 
+0

Я пробовал это, и он дает ошибку. –

+1

@LeeMeador Я удалил их; Я только добавлял их для акцента, но он всегда смущает людей, как и у вас. –

0

Использование JQuery прототип, вы можете сделать это:

$(objectFields).attr('venues').errorMessage; 

Так просто заменить 'места' с помощью атрибута имени переменной, например:

$(objectFields).attr(aVariableName).errorMessage; 
Смежные вопросы