Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

substr is not a function

Olá. Não estou conseguindo conferir se o que a pessoa digitou está igual a frase. Sempre dá esse erro de que substr não é função. O que faço?

3 respostas

Oi Mirella.

As funções substr()ou substring() servem para pegar partes de uma string. Olhe esse exemplo:

var str = "Substring pega partes de uma string!";
var res = str.substr(3, 9);

No caso, o valor de res será: string pe. Eu cortei a string no índice 3 (quarto caractere, contando que começa por 0) e peguei os primeiros 9 caracteres que existiam pra frente. Note que para utilizar o método, você precisa usá-lo em uma string e receber o resultado em outra.

De toda forma, esse método não é o que você procura. O que você pode usar é o operador ===, tipo:

if ($("#meuId").html() === "Mirella")
{
    ...
}

Eu estava tentando reproduzir o que ensinou na aula 5 sobre substr. Eu entendi o que é, só não estou conseguindo fazer funcionar.

function inicializaMarcadores(){  
  var frase = $(".frase").text;
  campo.on("input", function(){
    var digitado = campo.val();
    var comparavel = frase.substr(0, digitado.length);   
    if (digitado == comparavel){
     campo.addClass("borda-verde");
     campo.removeClass("borda-vermelha");
    }else{
     campo.addClass("borda-vermelha");
     campo.removeClass("borda-verde");
    }
  });
}

Fiz tudo conforme fala na aula, mas como não estava funcinando, fui ver pelo console e aparece "frase.substr is not a function"

solução!

Ah sim, desculpe.

Altere esse trecho:

var frase = $(".frase").text;

Para isso:

var frase = $(".frase").text();

Se não funcionar, substitua o text() para html().

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software