Javascript数组 - 从文本框中拉出的字符串创建(jquery)

时间:2014-02-03 17:53:43

标签: javascript jquery arrays

我有一个php脚本循环并创建一串值(见下文),然后将此值添加到隐藏文本框中。现在我想要做的是使用jQuery将此值拉入我的javascript并创建一个数组。

$ events包含以下值:

{date:'2014-01-29'},{date:'2014-01-30'},{date:'2014-01-31'},{date:'2014-02-01'},{date:'2014-02-03'}

这是文本字段:

<input type="hidden" id="events" value="<?=$events?>">

以下是我的js文件中用于创建数组的行:

var eventarray=[$("#events").val()];

现在当我在我的js中警告()eventarray它给了我:

{date:'2014-01-29'},{date:'2014-01-30'},{date:'2014-01-31'},{date:'2014-02-01'},{date:'2014-02-03'}

但我需要它返回的是(所以我可以正确使用数组):

[object Object],[object Object],[object Object],[object Object],[object Object]

我正在尝试将一组动态日期从我的数据库传递到日历(我正在使用CLNDR)。

2 个答案:

答案 0 :(得分:0)

您可以使用JSON.parse

var eventarray=JSON.parse('['+$("#events").val()+']');

Fiddle Demo

或jQuery $.parseJSON()

var eventarray=$.parseJSON('['+$("#events").val()+']');

Fiddle Demo

请记住,您的JSON字符串需要格式正确,这意味着双引用属性名称和值,因此更改$events变量,如下所示

{"date":"2014-01-29"},{"date":"2014-01-30"},{"date":"2014-01-31"},{"date":"2014-02-01"},{"date":"2014-02-03"}

Documentation

答案 1 :(得分:-1)

你应该做的是修改你的输出,以便你产生一个JSON字符串(即 double 引用属性和键):

var json = '{"date":"2014-01-29"},{"date":"2014-01-30"},{"date":"2014-01-31"},{"date":"2014-02-01"},{"date":"2014-02-03"}';

这还不是JSON。你需要像这样修改字符串:

var str = '[' + json + ']';

然后解析它:

var arr = JSON.parse(str);

Demo