2011-08-01 2 views
0

Googleマップ機能から作成されたDIVをクリアする必要があります。 2つのHTML DIVがあります。私は問題を抱えていDIVは、マーカーがGoogleマップに戻されたときにこれが作成されMarkerCountJavascript Google Mapsマップリセット時にHTMLをクリアする

<div id="sidebar"></div> 
<div id="MarkerCount"></div> 

function createMarkerCount(count) { 
var div = document.createElement('div'); 
var html = "Results: " + count + " Facilities"; 
div.innerHTML = html; 
div.style.marginBottom = '5px'; 
return div; 
} 

です。これは、基本的にマップに現在表示されているレコードの数をカウントしています。この関数は正常に動作します。

function clearLocations() { 
infoWindow.close(); 
for (var i = 0; i < markers.length; i++) { 
markers[i].setMap(null); 
} 
markers.length = 0; 
sidebar.innerHTML = ""; 
map.setCenter(new google.maps.LatLng(36.1611, -116.4775), 6); 
} 

この機能は正常に動作します:

はここでマップをリセットし、マーカーや他のinnerHTMLのDIVと呼ばれるサイドバーをクリアするために私の関数です。私はしかし、ときに、ページが最初にロード

MarkerCount.innerHTML = ""; 

)(関数clearLocationsに次の行を追加しようとしました、そしてあなたが検索を実行MarkerCount、 をクリアしたいとき今、clearLocations()関数が呼び出されます現在、CreateMarker関数用に作成されたinnerhtmlは存在しないため、検索が開始される前にCreateMarkerが何も存在しないのでNULLであることを示すエラーが返されます。

スキニーは、sidebar.innerhtmlは正常にクリアされますが、CreateMarker.innerhtml DIVをクリアするコード行を追加すると、エラーが発生します。なぜこれが起こっされる可能性がありますわからない....

EDIT - 機能CountMarkerはあなたが定義されていない要素にinnerHTMLの設定で問題が発生しているようですね

var markercountEntry = createMarkerCount(markerNodes.length); 
MarkerCount.appendChild(markercountEntry); 
+0

CreateMarkerが設定されている方法を示すために編集あなたの質問。 – mrk

+0

ありがとう、私はそれを追加しました –

答えて

1

カウント取得方法を示すことまだ、あなたのclearLocations()機能で。 CreateMarkerまたはMarkerCountがまだ定義されていないケースを処理することをお勧めします。

のような何か:

function clearLocations() { 
    if(CreateMarker && CreateMarker.innerHTML) 
     CreateMarker.innerHTML = ""; 
    infoWindow.close(); 
    for (var i = 0; i < markers.length; i++) { 
    markers[i].setMap(null); 
    } 
    markers.length = 0; 
    sidebar.innerHTML = ""; 
    map.setCenter(new google.maps.LatLng(36.1611, -116.4775), 6); 
} 
+0

ありがとう! –

関連する問題