Por que estou recebendo ...
TypeError não capturado: string.split não é uma função
... quando eu corro ...
var string = document.location;
var split = string.split('/');
javascript
jquery
split
Eric
fonte
fonte
document.location
é um objeto. Experimente:var string=document.location.href
Respostas:
Mude isso...
para isso...
Isso ocorre porque
document.location
é um objeto Location . O padrão.toString()
retorna o local em formato de string, então a concatenação irá acionar isso.Você também pode usar
document.URL
para obter uma string.fonte
toString()
vez de concatenação hacky?+ ''
é um truque bastante comum para coerção de strings, mas algumas pessoas preferem otoString()
método. Eu não consideraria isso mais hacky do que usar o unário+
para conversão de número.parseInt()
eparseFloat()
. Existe tambémNumber()
. O+
é mais curto, é claro, mas menos legível para alguém não acostumado a códigos hacky ou menos experiente.+ ''
método não muda nada para mim no navegador Chrome, mas mudatoString()
.my_string + "".split()
? Nesse caso, você precisa de parênteses, pois+
tem uma precedência menor que.
. Assim:(my_string + "").split()
talvez
presumindo que você deseja o url atual
fonte
Rode isto
você quer
document.location.toString()
oudocument.location.href
fonte
document.location
não é uma string.Você provavelmente está querendo usar
document.location.href
ou emdocument.location.pathname
vez disso.fonte
Na cláusula if, use
()
. Por exemplo:fonte