18

我知道这可能是一个简单的问题,但我正在尝试对插件进行调整,而 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);

不确定这是最好的方法,但它确实有效。谢谢大家!

4

4 回答 4

38

在我的脑海中,我认为应该这样做:

var veggies = "carrot";
var fruitvegbasket = [];
fruitvegbasket.push(veggies);
于 2009-08-17T03:52:22.580 回答
6

jQuery 与数组不同。如果您想在 jQuery 对象的末尾附加一些内容,请使用:

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

或将其附加到您的示例中的表单值的末尾:

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

在您的情况下,fruitvegbasket是一个包含 的当前值的字符串,而#fruit不是一个数组。

jQuery ( jquery.com ) 允许 DOM 操作,并且您调用的特定函数将元素val()value属性input作为字符串返回。你不能把东西推到绳子上。

于 2009-08-17T03:53:02.203 回答
1

.val()不从 DOM 元素返回数组:$('#fruit')将在文档中查找 ID 为 #fruit 的元素并获取其值(如果它有值)。

于 2009-08-17T03:53:51.267 回答
0

也许$('#fruit').val();没有返回一个数组,你需要类似的东西:

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

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

于 2009-08-17T03:57:30.870 回答