Pourquoi est-ce que je reçois ...
Uncaught TypeError: string.split n'est pas une fonction
... quand je cours ...
var string = document.location;
var split = string.split('/');
javascript
jquery
split
Eric
la source
la source
document.location
est un objet. Essayez:var string=document.location.href
Réponses:
Change ça...
pour ça...
C'est parce qu'il
document.location
s'agit d'un objet Location . La valeur par défaut.toString()
renvoie l'emplacement sous forme de chaîne, donc la concaténation le déclenchera.Vous pouvez également utiliser
document.URL
pour obtenir une chaîne.la source
toString()
au lieu d'une concaténation hacky?+ ''
est une astuce assez courante pour la coercition de chaînes, mais certaines personnes préfèrent latoString()
méthode. Je ne le considérerais pas plus piraté que d'utiliser l'unaire+
pour la conversion de nombres.parseInt()
etparseFloat()
. Il y a aussiNumber()
. Le+
est plus court bien sûr, mais moins lisible pour quelqu'un qui n'a pas l'habitude de pirater du code ou qui est moins expérimenté.+ ''
méthode ne change rien pour moi dans le navigateur Chrome, mais letoString()
fait.my_string + "".split()
? Si tel est le cas, vous avez besoin de parenthèses car+
a une priorité inférieure à.
. Donc, comme ça:(my_string + "").split()
peut être
en supposant que vous vouliez l'URL actuelle
la source
lance ça
tu veux
document.location.toString()
oudocument.location.href
la source
document.location
n'est pas une chaîne.Vous souhaitez probablement utiliser
document.location.href
ou à ladocument.location.pathname
place.la source
En clausule si, utilisez
()
. Par exemple:la source