我有一个像这样的JSON文件
[{"excursionDay":"2"},{"excursionDay":"3"},{"excursionDay":"4"}]
我想将excursionDay的值传递给javascript中的数组,如此
dayValues = [2,3,4]
到目前为止,我的javascript代码如下
fucntion excursionDates(date){
var day = date.getDay();
var dayValues = [];
$.get('json.php',function(data){
for(var i=0; i<data.length;i++){
dayValues.push(data[i].excursionDay);
}
},'json');
}
但由于某种原因,我无法完成这项工作。 当我点击jquery-ui datepicker并仅启用特定日期时,我想触发以上所有内容。 datepicker的代码是bollow。
$("#excursionDate").datepicker({
minDate: today,
dateFormat: 'dd-mm-yy',
beforeShowDay: excursionDates
});
有人可以帮帮我吗?
答案 0 :(得分:0)
试试这个:
data.forEach( function(element){
dayValues.push(element.excursionDay);
})
console.log(dayValues); // outputs ["2", "3", "4"]
答案 1 :(得分:0)
这看起来像是Array.map的完美用例:
var startArray = [{"excursionDay":"2"},{"excursionDay":"3"},{"excursionDay":"4"}];
var dayValues = startArray.map(function(item){
return item.excursionDay
});
//dayValues is now ["2","3","4"]
答案 2 :(得分:0)
发布的代码按顺序显示,但我怀疑您没有使用application/json
回复,而是text/html
。
确保您在json.php中执行以下操作。
header('Content-Type: application/json');
答案 3 :(得分:0)
Hay我建议你使用underscore.js。
方法
_.values(object)
它返回数组中对象的所有值。
_.values({one: 1, two: 2, three: 3});
result: [1, 2, 3]
答案 4 :(得分:0)
这可以在JavaScript中轻松完成:
var jsArray = [];
var p = [{"excursionDay":"2"},{"excursionDay":"3"},{"excursionDay":"4"}];
for( var i = 0; i < p.length; i++) {
jsArray.push(p[i].excursionDay);
}
console.log(jsArray);
答案 5 :(得分:0)
试试这个 - 使用 .push() 将记录插入array
var dataArray=[{"excursionDay":"2"},{"excursionDay":"3"},{"excursionDay":"4"}];
dayValuesArray = [];
for(var i=0; i<dataArray.length;i++){
dayValuesArray.push(dataArray[i].excursionDay);
}
alert(dayValuesArray);
&#13;
答案 6 :(得分:0)
尝试以下代码。
var jsonString ='[{"excursionDay":"2"},{"excursionDay":"3"},"excursionDay":"4"}]';
var obj = $.parseJSON(jsonString);
var dayValues = [];
for (var i = 0, len = obj.length; i < len; i++){
dayValues.push(obj[i].excursionDay);
}
console.log(JSON.stringify(obj));
答案 7 :(得分:0)
代码的数组部分应该可以正常工作。但是,datepicker调用不是。
我想你应该使用.beforeShow()
方法(http://api.jqueryui.com/datepicker/#option-beforeShow),它会比每天之前迭代的.beforeShowDay()
更好。
$("#excursionDate").datepicker({
minDate: today,
dateFormat: 'dd-mm-yy',
beforeShow: excursionDates
});