мой .json находится по адресу https://aaronlilly.github.io/PokeApp/api/v2/pokemon/FakeLego2.json
{
"results":
[
{
"ID": 2924,
"SetNumber": 7942,
"URL": "https://www.lego.com/biassets/bi/4586972.pdf",
"Images": "https://www.lego.com/biassets/biimg/4586972.png",
"Description": "Off Road Fire Rescue",
"DashedNumber": "7942-1",
"Preselect": "fire"
},
{
"ID": 4470,
"SetNumber": 7942,
"URL": "https://www.lego.com/biassets/bi/4656089.pdf",
"Images": "https://www.lego.com/biassets/biimg/4656089.png",
"Description": "Police Boat",
"DashedNumber": "7287-1 ",
"Preselect": "police"
}
],"next":"1
мой сценарий
$(document).ready(function () {
$('#search-now').click(function () {
$.ajax
({
method: "GET",
url: "https://aaronlilly.github.io/PokeApp/api/v2/pokemon/FakeLego2.json"
}).done(function (data) {
for (var i = 0; i < data.results.length; i++) {
$("#legoList").append(data.results[i].Preselect + "<br>");
}
});
});
});
Я хотел, чтобы мой пример был простым, поэтому я создал этот файл .json, но, в конце концов, я хотел бы, чтобы пользователь вводил поиск в поле и возвращал элементы, которые соответствуют описанию, содержащему слово в поле поиска.
Обновить
Я узнал, как фильтровать, но я все еще борюсь с тем, как фильтровать динамически. Ниже я создаю массив с именем obj и настраиваю его так же, как мой json, затем у меня есть фильтр для записи в консоль для элемента с идентификатором 2924.
var obj = {
'results': [{
"ID": 2924,
"SetNumber": 7942,
"URL": "https://www.lego.com/biassets/bi/4586972.pdf",
"Images": "https://www.lego.com/biassets/biimg/4586972.png",
"Description": "Off Road Fire Rescue",
"DashedNumber": "7942-1",
"Preselect": "fire"
}, {
"ID": 4470,
"SetNumber": 7942,
"URL": "https://www.lego.com/biassets/bi/4656089.pdf",
"Images": "https://www.lego.com/biassets/biimg/4656089.png",
"Description": "Police Boat",
"DashedNumber": "7287-1 ",
"Preselect": "police"
},
]
};
var newArray = obj.results.filter(function (el) {
return el.ID == 2924 &&
el.SetNumber &&
el.URL &&
el.Images &&
el.Description &&
el.DashedNumber &&
el.Preselect ;
});
console.info(newArray);
Теперь я хочу сделать это динамически.
Я добавил поле на свою страницу
<input type = "text" id = "prodId" size = "37" placeholder = "Search Field" style = "margin-left: 50px;margin-top: 10px;padding-bottom: 5px;padding-top: 4px;">
поэтому я пытаюсь переместить значение prodId в свой новый массив, но это не совсем работает.
var newArray = obj.results.filter(function (el) {
return el.ID == $('#prodId').val() &&
el.SetNumber &&
el.URL &&
el.Images &&
el.Description &&
el.DashedNumber &&
el.Preselect ;
});
console.info(newArray);
надеюсь, вы видите, что я пытаюсь :) любые предложения были бы замечательными.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вот как это сделать.
$(document).ready(function (){
$('#prodId').click(function () {
var newArray = obj.results.filter(function (el) {
return el.ID == $('#prodId').val() &&
el.SetNumber &&
el.URL &&
el.Images &&
el.Description &&
el.DashedNumber &&
el.Preselect ;
});
console.info(newArray);
это, однако, покажет точные совпадения с (ID, т.е. 2924 или 4470)
Я узнал, как фильтровать, но я все еще борюсь с тем, как фильтровать динамически.