我有一个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)。
答案 0 :(得分:0)
您可以使用JSON.parse
var eventarray=JSON.parse('['+$("#events").val()+']');
或jQuery $.parseJSON()
var eventarray=$.parseJSON('['+$("#events").val()+']');
请记住,您的JSON字符串需要格式正确,这意味着双引用属性名称和值,因此更改$events
变量,如下所示
{"date":"2014-01-29"},{"date":"2014-01-30"},{"date":"2014-01-31"},{"date":"2014-02-01"},{"date":"2014-02-03"}
答案 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);