此问题的背景是我试图从谷歌可视化日历中的addListener访问所选单元格。我可以使用JSON.stringify(chart.getSelection());
打印所选单元格。它打印为[{"date":1468195200000,"row":0}]
。
我的问题是访问此日期对象。我试图以
的形式访问它var obj=JSON.stringify(chart.getSelection());
console.log('selected value '+obj.date);
但它显示为Undefined
。当我打印obj
时,它显示为[对象,对象]
如果您需要更多信息,请告诉我们。任何建议将不胜感激。
答案 0 :(得分:4)
JSON.stringify()将数据对象序列化为字符串。只需直接访问该对象。
var data = chart.getSelection()[0]; // assuming there is only ever one item in the selection array.
console.log(data.date)
答案 1 :(得分:3)
试试这个:
error C2248: 'A::fooMem' : cannot access private member declared in class 'A'
see declaration of 'A::fooMem'

答案 2 :(得分:1)
'select'
事件时直接访问第一个数组元素小心
chart.getSelection()[0]
'select'
事件在进行选择时被触发,并且被删除
所以删除选择
时,上述行将失败在访问之前检查length
...
selection = chart.getSelection();
// check selection length
if (selection.length > 0) {
console.log(selection[0].date);
} else {
console.log('selection removed');
}
请参阅以下工作代码段,选择日期,然后再次选择以删除选择...
google.charts.load('current', {
callback: function () {
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'date', id: 'Date' });
dataTable.addColumn({ type: 'number', id :'Score' });
dataTable.addRows([
[ new Date(2016, 3, 13), 101 ],
[ new Date(2016, 3, 14), 102 ],
[ new Date(2016, 3, 15), 103 ],
[ new Date(2016, 3, 16), 104 ],
[ new Date(2016, 3, 17), 105 ]
]);
var chart = new google.visualization.Calendar(document.getElementById('chart_div'));
google.visualization.events.addListener(chart, 'select', function () {
var selection = chart.getSelection();
// check selection length
if (selection.length > 0) {
console.log(selection[0].date);
} else {
console.log('selection removed');
}
});
chart.draw(dataTable);
},
packages:["calendar"]
});

<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
&#13;
答案 3 :(得分:0)
这是一个对象数组,但是这个数组中只有一个对象(或者我认为),所以你应该做的是self.buttonName.layer.borderWidth = 1
self.buttonName.layer.borderColor = UIColor.whiteColor().CGColor
!