2010-12-09 40 views
1

Ich verwende Google Maps API-Geokodierung, um eine Adresse in einen Ort auf der Karte umzuwandeln. Ich habe es eingerichtet als:Google Maps API-Geokodierung

var address = document.getElementById ("Adresse"). InnerText;

Ich habe meine Adresse als

einrichten Div,

123 candycane lane (br /> Nordpol, antartica

Whenver ich eine
nach der ersten Zeile setzen, wird die Geokodierung keine Ergebnisse zurück Aber wenn ich es entferne und die Adresse als eine Zeile habe, funktioniert der Geocoder perfekt. Ich hatte gedacht, dass innerText HTML nicht berücksichtigt, wie zum Beispiel (br />. Gibt es es trotzdem, damit es den Zeilenumbruch überspringt?

Danke

P.S. Ich weiß, dass meine Zeilenumbrüche am Anfang Klammern haben, aber weil mein Beitrag den HTML-Zeilenumbruch nicht erkannt hat.

Antwort

2

.innerText gibt kein Zeilenumbruch-Tag (br) zurück, wie Sie sagen, aber es gibt ein Zeilenumbruchzeichen (\ n) zurück.

Einfache Lösung (ersetze es mit einem Leerzeichen):

var address = document.getElementById('address').innerText.replace(/\n/g, ' '); 

Bearbeiten, .replace() ist eine Methode auf dem String-Objekt, das einen regulären Ausdruck als einen ersten Parameter nimmt. Das 'g' steht für global, was bedeutet, dass es alle Vorkommen von \ n ersetzen soll. Ohne sie würde nur das erste Vorkommen ersetzt werden. Der zweite Parameter ist die Ersatzzeichenfolge.

+0

Ich verstehe, dass \ n ist der Newline-Charakter, aber können Sie erklären, was (/ \ n/g, ''), bedeutet das Ganze? Ich bin neu in Javascript, so dass ich nicht sicher bin, was es tut. Danke –

+0

Dies ist ein regulärer Ausdruck suchen und ersetzen. \ n bedeutet Newline, das Muster verläuft zwischen Schrägstrichen/so /, g ist ein globaler Modifikator mit der Bedeutung "Ersetze jede neue Zeile durch den Ersetzungstext" und der letzte Parameter, "", ist der Ersetzungstext. –

+0

macht Sinn. danke –