0

我有以下代码:

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>');
}

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

4

2 回答 2

2

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

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

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

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

于 2013-09-06T11:16:01.527 回答
2

你没有把你的元素放在里面.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>');
}
于 2013-09-06T11:16:59.203 回答