jquery 第二次回调



我有以下代码:

function callback(results, status) {
    if (status == google.maps.places.PlacesServiceStatus.OK) {
        $('.elements').empty();
        for (var i = 0; i < results.length; i++) {
            createElements(results[i]);
        }
    }
}
function createElements(place) {
    var placeLoc = place.geometry.location;
    var name = place.name;
    $('.elements').after('<p>Name: ' + name + '</p>');
}

但是当我第二次调用回调时 - 它会附加数据,而不是清除以前的列表。为什么?

$('.elements').after('<p>Name: ' + name + '</p>');

在选择器之后插入元素$('.elements')而不是作为子项更改为

$('.elements').append('<p>Name: ' + name + '</p>');

因为.empty()会清除元素的子元素而不是兄弟姐妹

你没有把你的元素放在.elements里面。

试试这个:

function callback(results, status) {
    if (status == google.maps.places.PlacesServiceStatus.OK) {
        $('.elements').empty();
        for (var i = 0; i < results.length; i++) {
            createElements(results[i]);
        }
    }
}
function createElements(place) {
    var placeLoc = place.geometry.location;
    var name = place.name;
    $('.elements').append('<p>Name: ' + name + '</p>');
}

最新更新