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

しかし、コールバックを 2 回目に呼び出すと、データが追加され、前のリストがクリアされません。なんで?

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 に答える