Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, povo.
Tenho uma dúvida, montei uma função que transforma o título de uma postagem em um monte de tags, mas não tá funcionando do jeito que eu quero.
Basicamente, eu uso o split() pra dividir o titulo em caracteres únicos e transformo todos os espaços em virgulas automaticamente dessa forma. Até ai tudo bem, funciona perfeitamente. Só que quando tento concatenar os resultados dentro de uma string dá erro e ele não me retorna absolutamente nada dentro da string.
Fiz a função assim e coloquei um OnInput="convertToTag(this.value.toLowerCase())" no campo do título:
function convertToTag(t){
var res = t.split("");
var texto = "";
for(i = 0; i <= res.length; i++){
var texto = texto.concat(res[i].replace(" ", ","));
}
alert(texto);
}
O alert nem funciona. Não me mostra nada. Onde errei?
>
.concat() é para juntar 2 ou mais arrays.
o var dentro do loop recria a variável a cada interação.
O split não cria um texto cheio de virgulas, ele te dá um array. As vírgulas não existem lá, elas apenas aparecem para te mostrar que aquilo é um array.
Para ver os erros, aperte Ctrl + Shift + J no Firefox ou Chrome.
A questão do split ali eu me expressei mal, eu quis dizer que usei o .replace() pra trocar os espaços entre as palavras do título da postagem por vírgulas pra separar as tags automáticas.
A dica de ver o erro no navegador ajudou demais! Mas sou bem ruim em javascript ainda, vou dar uma estudada mais afundo e ver o que consigo resolver. Por enquanto to usando um ajax no OnChange pra resolver isso com php mesmo.
Brigado pela ajuda, conseguindo ver os erros fica muito mais fácil achar a solução \o
.concat() é para juntar 2 ou mais arrays.
o var dentro do loop recria a variável a cada interação.
O split não cria um texto cheio de virgulas, ele te dá um array. As vírgulas não existem lá, elas apenas aparecem para te mostrar que aquilo é um array.
Para ver os erros, aperte Ctrl + Shift + J no Firefox ou Chrome.