Когда пользователь выбирает радиокнопку, его идентификатор используется для доступа к массиву 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. Это не связывает строку с именем массива переменных.
Решения?
не уверен, что вы хотите сделать, но вы используете .each с идентификатором строки (позиция) – juvian
Возможный дубликат: http://stackoverflow.com/questions/30269461/uncaught-typeerror-cannot-use-in- оператор-to-search-for-length-in – dannypaz
«$ .each функция для прокрутки содержимого и отображения элементов управления формы» через какое содержимое? – nurdyguy