Dlaczego dostaję ...
Uncaught TypeError: string.split nie jest funkcją
... kiedy biegnę ...
var string = document.location;
var split = string.split('/');
javascript
jquery
split
Eric
źródło
źródło
document.location
jest przedmiotem. Spróbuj:var string=document.location.href
Odpowiedzi:
Zmień to...
do tego...
Dzieje się tak, ponieważ
document.location
jest to obiekt lokalizacji . Wartość domyślna.toString()
zwraca lokalizację w postaci ciągu, więc konkatenacja to wyzwoli.Możesz również użyć,
document.URL
aby uzyskać ciąg.źródło
toString()
zamiast hakerskiej konkatenacji?+ ''
Jest dość powszechne trick strun przymusu, ale niektórzy ludzie wolątoString()
metodę. Nie uważałbym tego za bardziej hakerskie niż użycie jednostki jednoargumentowej+
do konwersji liczb.parseInt()
iparseFloat()
. Jest teżNumber()
.+
Jest krótszy oczywiście, ale mniej czytelny dla kogoś nie jest używany do kodu hacky lub mniej doświadczonych.+ ''
metoda nie robi nic dla mnie zmienić w przeglądarce Chrome, aletoString()
nie.my_string + "".split()
? Jeśli tak, potrzebujesz parens, ponieważ+
ma niższy priorytet niż.
. A więc tak:(my_string + "").split()
może
zakładając, że chcesz mieć aktualny adres URL
źródło
Uruchom to
chcesz
document.location.toString()
lubdocument.location.href
źródło
document.location
nie jest ciągiem.Prawdopodobnie chcesz użyć
document.location.href
lubdocument.location.pathname
zamiast tego.źródło
W klauzuli if użyj
()
. Na przykład:źródło