Я продолжаю получать сообщение об ошибке при попытке сопоставления входных данных пользователей с файлом .json. Вот мой .js:Проблемы с вводом пользователей в файл .json, продолжайте получать «Uncaught ReferenceError: myExp не определен»
$.getJSON('rote.json', function(data){
var random = data.eats[Math.floor(Math.random() * data.eats.length)];
var title = random[0].cat;
var titleLength = random[0].cat.length;
$("h2").html(title);
var output = '';
$.each(random, function(key,val){
var snippedFieldLength = random.length - 1;
output += '<input type="search" name="search" class="search" placeholder="write your tag here" /><br><br>';
});
$('.fields').html(output);
$('.search').keyup(function(){
var searchField = $('.search:eq(1)').val();
var myExp = new RegExp(searchField, "i");
console.log(myExp);
var output2 = '';
$.each(random, function(key,val){
console.dir(val);
if (val.search(myExp) != -1) {
output2 += 'hello';
}
});
$('#update').html(output2);
});
});
Вот мой .json файл:
{"eats":
[
[
{"cat":"drinks"},
"soda",
"milk"
],
[
{"cat":"food"},
"burgers",
"fries",
"pizza"
]
]
}
Я пытаюсь соответствовать данным я получаю из файла .json в тексте, вставленный в поле ввода HTML сгенерированный с использованием цикла. Все это делается с помощью .json и jquery. У меня нет проблем случайным образом выбирать элементы из моей категории json «ест», и у меня нет проблем с созданием полей, которые соответствуют длине категорий (минус 1, поскольку элементы «cat» должны быть исключены), но моя проблема в том, что Я не могу заставить регулярное выражение соответствовать тексту, который пользователь вводит в .json-файл. У кого-нибудь есть идеи? Я все время получаю сообщение об ошибке «Неотдача ReferenceError: myExp не определена».
Это определенно верно, но даже когда я помещаю его в правильный объем, ошибка остается. Спасибо за вашу помощь. –
Я получаю другую ошибку: 'TypeError: undefined не является функцией' из строки' val.search (myExp) '. Это потому, что 'val' является объектом' {cat: "drink"} ', и этот объект не имеет метода поиска. – Barmar
@Easy Что значит? Объем «myExp» - это обработчик манипуляций «.search». Он используется в функции, вложенной внутри этой функции, поэтому она находится в области видимости. – Barmar