2
respostas

Comportamento da variável

    $('#botao-adiciona').on('click',function(){
        var texto = $('#treinamento').val();
        console.log(texto)
        $('<li>').text(texto).css({"color":"blue","background-color":"lightgrey"}).appendTo('#lista');

        $('#treinamento').val('');

    })

No exemplo acima se eu escrevo "Flavio" no campo #treinamento, o log me exibe exatamente "Flavio", dessa forma eu assumo que o valor da variável "texto" naquele momento é "Flavio".

Por algum motivo não consigo substituir a linha:

$('#treinamento').val('');

Pela seguinte linha:

$(texto).val('');

Minha dúvida em relação ao comportamento em relação ao dado da variável, qual a forma de conseguir com que algo similar a "$(texto).val('');" funcione?

2 respostas

Abri um tópico similar abaixo, creio que sejam duvidas similares.

https://cursos.alura.com.br/forum/topico-limpando-campos-do-form-25449

Flávio,

Quando você realiza esse trecho de código, você está armazenando o valor textual do elemento html dentro da variavel:

var texto = $('#treinamento').val();

A variavel texto acaba não tendo mais nenhuma ligação com o campo #treinamento, a unica coisa que ela possui é o mesmo texto(string) do elemento html.

Se você realizar:

var texto = $('#treinamento'); //removendo o ".val()";

Dentro da variavel texto você armazenou uma referência ao objeto HTML representado no DOM.

Sendo um objeto, você tem acesso a todos os atributos do elemento HTML que foram encapsulados pelo jQuery.

Quando você faz:

$(texto).val('');

É a mesma coisa que fazer:

$('Flávio').val('');

Você acaba procurando no DOM por um elemento html que seja igual a: <Flávio></Flávio>.