I know this is probably a simple question, but I'm attempting a tweak in a plugin & js is not my expertise and I got stumped on how to do the following:
I have an array that can contain a number of values ($fruit) depending on what a user has entered. I want to add another variable to the array that isn't determined by manual input.
I know push should apply here but it doesn't seem to work, why does the following syntax not work?
var veggies = "carrot";
var fruitvegbasket = $('#fruit').val();
fruitvegbasket.push(veggies);
update: I got it working doing this:
var fruit = $('#fruit').val();
var veggies = "carrot";
fruitvegbasket = new Array();
fruitvegbasket.push(fruit+","+veggies);
not sure that's the best way to do it, but it works. thanks all!
This question is related to
javascript
jquery
arrays
push
Off the top of my head I think it should be done like this:
var veggies = "carrot";
var fruitvegbasket = [];
fruitvegbasket.push(veggies);
Perhaps $('#fruit').val();
is not returning an array and you need something like:
$("#fruit").val() || []
jQuery is not the same as an array. If you want to append something at the end of a jQuery object, use:
$('#fruit').append(veggies);
or to append it to the end of a form value like in your example:
$('#fruit').val($('#fruit').val()+veggies);
In your case, fruitvegbasket
is a string that contains the current value of #fruit
, not an array.
jQuery (jquery.com) allows for DOM manipulation, and the specific function you called val()
returns the value
attribute of an input
element as a string. You can't push something onto a string.
.val()
does not return an array from a DOM element: $('#fruit')
is going to find the element in the document with an ID of #fruit and get its value (if it has a value).
Source: Stackoverflow.com