Попытка отфильтровать выборку - PullRequest
0 голосов
/ 09 декабря 2018

Я хочу отфильтровать результаты из fetch в displayConcerts с помощью функции filter .Мне не удалось получить фильт (входные данные из документа) в displayConcerts , чтобы отфильтровать по Concert.eventDateName .

Так что, если ввод«h» будет показывать только концерт с eventDateName , начинающимся с «h».

(function () {

    function createNode(element) {
        return document.createElement(element);
    }

    function append(parent, el) {
        return parent.appendChild(el);
    }

    const ul = document.getElementById('concerts');
    const url = 'https://apis.is/concerts';
    let search = document.getElementById('search');
    //-----------------------------------------------------------

    const getConcerts = () => {//get the concert data and output in console
        return fetch(url)
        .then(res => res.json())
        .then(concerts => console.log(concerts.results))
    }


    let displayConcerts = (query) => {//displays concerts in html file
        let filt = query;
        //console.log(filt);
        fetch(url)
        .then((resp) => resp.json())
        .then(function(data) {
            let concerts = data.results;
            return concerts.map(function(concert) {//   outputs images and text
                if (concert.eventDateName) {
                    let div = createNode('div'),
                    img = createNode('img'),
                    span = createNode('span');
                    img.src = concert.imageSource;
                    span.innerHTML = `${concert.eventDateName}`;
                    append(div, img);
                    append(div, span);
                    append(ul, div);
                }
            })
        })
        .catch(function(error) {
            console.log(error);
        });
    }

    //-----Filter for concert search------------------------------

    function filter() {
        let query = this.value.trim().toLowerCase();
        //console.log(query);
        getConcerts();
        displayConcerts(query);
    }





    search.addEventListener("input", filter);
    search.addEventListener("keyup", filter);

}());
...