Warum bekomme ich ...
Nicht erfasster TypeError: string.split ist keine Funktion
... wenn ich renne ...
var string = document.location;
var split = string.split('/');
javascript
jquery
split
Eric
quelle
quelle
document.location
ist ein Objekt. Versuchen Sie:var string=document.location.href
Antworten:
Ändere das...
dazu ...
Dies liegt daran, dass
document.location
es sich um ein Standortobjekt handelt . Die Standardeinstellung.toString()
gibt den Speicherort in Zeichenfolgenform zurück, sodass die Verkettung dies auslöst.Sie können auch
document.URL
eine Zeichenfolge abrufen.quelle
toString()
statt einer hackigen Verkettung anzurufen?+ ''
ist ein ziemlich häufiger Trick für Zwang, aber einige Leute bevorzugen dietoString()
Methode. Ich würde es nicht als hackiger betrachten, als das Unäre+
für die Zahlenkonvertierung zu verwenden .parseInt()
undparseFloat()
. Es gibt auchNumber()
. Das+
ist natürlich kürzer, aber weniger lesbar für jemanden, der nicht an Hacky-Code gewöhnt ist oder weniger Erfahrung hat.+ ''
Methode ändert für mich in Chrome Browser nichts,toString()
tut es aber .my_string + "".split()
? In diesem Fall benötigen Sie Parens, da+
diese eine niedrigere Priorität haben als.
. Also so:(my_string + "").split()
vielleicht
Angenommen, Sie möchten die aktuelle URL
quelle
Führen Sie dies aus
du willst
document.location.toString()
oderdocument.location.href
quelle
document.location
ist keine Zeichenfolge.Sie möchten wahrscheinlich
document.location.href
oderdocument.location.pathname
stattdessen verwenden.quelle
In Klausel wenn verwenden
()
. Beispielsweise:quelle