Empurrando valor de Var em uma matriz
-
18-09-2019 - |
Pergunta
Eu sei que esta é provavelmente uma pergunta simples, mas eu estou tentando um ajuste em um plugin & js não é a minha experiência e eu fiquei perplexo sobre como fazer o seguinte:
Eu tenho uma matriz que pode conter um número de valores ($ fruta), dependendo do que um usuário entrou. Quero acrescentar outra variável para a matriz que não é determinada pela entrada manual.
Eu sei impulso deve aplicar aqui, mas não parece trabalho, por que faz o seguinte sintaxe não trabalho?
var veggies = "carrot";
var fruitvegbasket = $('#fruit').val();
fruitvegbasket.push(veggies);
atualização: Eu tenho que trabalhar fazendo isso:
var fruit = $('#fruit').val();
var veggies = "carrot";
fruitvegbasket = new Array();
fruitvegbasket.push(fruit+","+veggies);
Não é certeza que é a melhor maneira de fazê-lo, mas ele funciona. Obrigado a todos!
Solução
Em cima da minha cabeça, eu acho que deveria ser feito assim:
var veggies = "carrot";
var fruitvegbasket = [];
fruitvegbasket.push(veggies);
Outras dicas
jQuery não é o mesmo como uma matriz. Se você quiser acrescentar algo no final de um objeto jQuery, use:
$('#fruit').append(veggies);
ou para anexá-lo ao final de um valor forma como no seu exemplo:
$('#fruit').val($('#fruit').val()+veggies);
No seu caso, fruitvegbasket
é uma cadeia que contém o valor atual de #fruit
, não uma matriz.
jQuery ( jquery.com ) permite a manipulação DOM, e a função específica você chamou val()
retorna o atributo value
de um elemento input
como uma string. Você não pode empurrar algo em uma string.
.val()
não retornar um array de um elemento DOM:. $('#fruit')
vai encontrar o elemento no documento com um ID de #fruit e obter o seu valor (se ele tiver um valor)
Talvez $('#fruit').val();
não está retornando um array e você precisa de algo como:
$("#fruit").val() || []