2015-08-06 2 views
0

Когда пользователь выбирает радиокнопку, его идентификатор используется для доступа к массиву javascript через функцию .change() jQuery, а затем функцию $ .each для прокрутки содержимого и скрытые формы. Однако, когда я запускаю этот код я получаю:Как получить доступ к массиву Javascript с динамической переменной string

Uncaught TypeError: Не удается использовать «в» оператора для поиска «длиной» в программаторе

** Других решения на StackOverflow, которые упоминают эту ошибку, кажется, ссылка JSON, а не только обычные массивы javascript. Я получил этот код для работы, включив инструкцию IF, спрашивая, является ли переменная «программистом», а затем выполняет код на основе этого. Это неэффективно, на мой взгляд, но это позволило мне использовать фактическое слово «программист» вместо имени динамической переменной «позиция» (которое будет содержать программиста).

Радио кнопки

<label for="position">Position</label> 

Программист
...

Массив:

var programmer = [ 
    "blah1", 
    "blah2", 
    "blah3" 
]; 

.Кнопкой (код)

$(".positionRadios").change(function() { 
    var position = $(this).attr('id'); 
    if (position != null) { 
     $.each(position, function (index, value) { 
      $("#" + value).show(); 
     }); 
    } else { 
     $('.system').hide(); 
    } 
}); 

Когда я пробовал это с циклом for, он просто перебирал каждую букву строки id. Это не связывает строку с именем массива переменных.

Решения?

+3

не уверен, что вы хотите сделать, но вы используете .each с идентификатором строки (позиция) – juvian

+0

Возможный дубликат: http://stackoverflow.com/questions/30269461/uncaught-typeerror-cannot-use-in- оператор-to-search-for-length-in – dannypaz

+0

«$ .each функция для прокрутки содержимого и отображения элементов управления формы» через какое содержимое? – nurdyguy

ответ

0

Все, что я нашел в Интернете, процитировал использование разбора JSON, чтобы получить переменную строку, которую можно рассматривать как объект. In this post, я обнаружил, что использование eval(), хотя и обескуражено, фактически отображает строку как объект/массив. Теперь код работает без ошибок. Я продолжу изучение варианта JSON.

Смежные вопросы