Нажатие значения Var в массив

Я знаю, что это, вероятно, простой вопрос, но я пытаюсь настроить плагин, а js не является моим опытом, и я не понимаю, как это сделать:

У меня есть массив, который может содержать несколько значений ($ fruit) в зависимости от того, что пользователь ввел. Я хочу добавить другую переменную в массив, который не определяется ручным вводом.

Я знаю, что push должен применяться здесь, но он не работает, почему следующий синтаксис не работает?

var veggies = "carrot";
var fruitvegbasket = $('#fruit').val();
fruitvegbasket.push(veggies);

обновление: Я заработал это:

var fruit = $('#fruit').val();
var veggies = "carrot";
fruitvegbasket = new Array();
fruitvegbasket.push(fruit+","+veggies);

не уверен, что лучший способ это сделать, но он работает. спасибо всем!

Ответы

Ответ 1

Сверху моей головы я думаю, что это должно быть сделано вот так:

var veggies = "carrot";
var fruitvegbasket = [];
fruitvegbasket.push(veggies);

Ответ 2

jQuery не совпадает с массивом. Если вы хотите добавить что-то в конец объекта jQuery, используйте:

$('#fruit').append(veggies);

или добавить его в конец значения формы, как в вашем примере:

 $('#fruit').val($('#fruit').val()+veggies);

В вашем случае fruitvegbasket - это строка, содержащая текущее значение #fruit, а не массив.

jQuery (jquery.com) позволяет манипулировать DOM, а специальная функция, которую вы назвали val(), возвращает атрибут value input как строка. Вы не можете нажимать что-то на строку.

Ответ 3

.val() не возвращает массив из элемента DOM: $('#fruit') собирается найти элемент в документе с идентификатором #fruit и получить его значение (если оно имеет значение).

Ответ 4

Возможно, $('#fruit').val(); не возвращает массив, и вам нужно что-то вроде:

$("#fruit").val() || []

http://docs.jquery.com/Attributes/val