首页 > 解决方案 > 如何用新的 api 调用结果交换列表?

问题描述

如何用新的 api 调用结果交换列表?我试图调用 clearList 函数,但它并没有真正起作用 :( 每次调用 API 数据时,我都会在列表中获得越来越多的位置,我需要清除它们并放置一个新的。

let arr = [];
// function clearList (){
//     Array.prototype.forEach.call(arr, (el)=> { el.remove(); });
// }
function searching() {
    console.log(arr);
    let search_button = $('#search_button');
    console.log(search_button);
    let sale = $('#sales');
    let ul = $('.show');

    search_button.on('click', function () {

        let findLocation = $('.location').val();
        console.log(findLocation);
        console.log(display_default);
        $.get('api/properties?location=' + findLocation, function (response) {
            let dataLocation = response.result.properties.elements;

            display_default.css('display', 'none');
                for (let key in dataLocation) {
                    arr.push(dataLocation[key].display_address);
                }
                console.log(arr);
                for (let i = 0; i < arr.length; i++) {
                    let li = $('<li>').text(arr[i]);
                    ul.append(li);
                }
        });
    });
}
searching();

});

标签: javascriptjqueryapilistview

解决方案


也许它可以帮助你?我在附加 .empty() 之前清理 ul

 $.get('api/properties?location=' + findLocation)
     .done(function(){
            let dataLocation = response.result.properties.elements;

        display_default.css('display', 'none');
            for (let key in dataLocation) {
                arr.push(dataLocation[key].display_address);
            }
            console.log(arr);

              ul.empty();
            for (let i = 0; i < arr.length; i++) {
                let li = $('<li>').text(arr[i]);
                ul.append(li);
            }
       });

推荐阅读