Javascript 如何提取Google图表的行条目宽度

Javascript 如何提取Google图表的行条目宽度,javascript,html,charts,google-visualization,Javascript,Html,Charts,Google Visualization,在Google甘特图上提取选定行的宽度时遇到困难。为了进一步说明,我需要单数数据行的宽度,我可以在'rect'标记下的代码中看到,但是不确定如何正确调用宽度检索语法 首先,等待图表的'ready'事件触发 然后我们可以从图表中获取元素。 除了表示行的元素外,还有其他元素 例如图表区域等 我们可以通过填充颜色过滤掉这些 google.visualization.events.addOneTimeListener(chart, 'ready', function () { var rows =

在Google甘特图上提取选定行的宽度时遇到困难。为了进一步说明,我需要单数数据行的宽度,我可以在'rect'标记下的代码中看到,但是不确定如何正确调用宽度检索语法


首先,等待图表的
'ready'
事件触发

然后我们可以从图表中获取
元素。
除了表示行的元素外,还有其他
元素

例如图表区域等
我们可以通过填充颜色过滤掉这些

google.visualization.events.addOneTimeListener(chart, 'ready', function () {
  var rows = container.getElementsByTagName('rect');
  var bars = [];
  Array.prototype.forEach.call(rows, function(row) {
    switch (row.getAttribute('fill')) {
      case '#ffffff':
      case '#f5f5f5':
      case 'none':
        // ignore
        break;

      default:
        bars.push(row);
    }
  });

  if (bars.length > 0) {
    console.log(parseFloat(bars[0].getAttribute('width')));
  }
});
请参阅以下工作片段

google.charts.load('current'{
软件包:[“甘特”]
}).然后(函数(){
var data=new google.visualization.DataTable();
data.addColumn('string','Task ID');
data.addColumn('string','Task Name');
data.addColumn('string','Resource');
data.addColumn(“日期”、“开始日期”);
data.addColumn(“日期”、“结束日期”);
data.addColumn('number','Duration');
data.addColumn('number','Percent completed');
data.addColumn('string','Dependencies');
data.addRows([
['2014年春季'、'2014年春季'、'2014年春季',
新日期(2014年2月22日),新日期(2014年5月20日),空,100,空],
[‘2014年夏季’、‘2014年夏季’、‘夏季’,
新日期(2014年5月21日),新日期(2014年8月20日),空,100,空],
【2014年秋季】、【2014年秋季】、【秋季】,
新日期(2014年8月21日),新日期(2014年11月20日),空,100,空],
['2014年冬季'、'2014年冬季'、'冬季',
新日期(2014年11月21日),新日期(2015年2月21日),空,100,空],
['2015年春季'、'2015年春季'、'2015年春季',
新日期(2015年2月22日),新日期(2015年5月20日),空,50,空],
[‘2015年夏季’、‘2015年夏季’、‘夏季’,
新日期(2015年5月21日),新日期(2015年8月20日),空,0,空],
【2015年秋季】、【2015年秋季】、【秋季】,
新日期(2015年8月21日),新日期(2015年11月20日),空,0,空],
[‘2015年冬季’、‘2015年冬季’、‘冬季’,
新日期(2015年11月21日),新日期(2016年2月21日),空,0,空],
[‘足球’、‘足球赛季’、‘体育’,
新日期(2014年8月4日),新日期(2015年1月1日),空,100,空],
[‘棒球’、‘棒球赛季’、‘运动’,
新日期(2015年2月31日),新日期(2015年9月20日),空,14,空],
[‘篮球’、‘篮球赛季’、‘运动’,
新日期(2014年9月28日),新日期(2015年5月20日),空,86,空],
[‘曲棍球’、‘曲棍球赛季’、‘运动’,
新日期(2014年9月8日),新日期(2015年5月21日),空,89,空]
]);
变量选项={
身高:400,
甘特图:{
轨高:30
}
};
var container=document.getElementById('chart_div');
var chart=newgoogle.visualization.Gantt(容器);
google.visualization.events.addOneTimeListener(图表'ready',函数(){
var rows=container.getElementsByTagName('rect');
var条=[];
Array.prototype.forEach.call(行,函数(行){
开关(row.getAttribute('fill')){
案例“#ffffff”:
案例“#f5”:
案例“无”:
//忽略
打破
违约:
杆。推(排);
}
});
如果(钢筋长度>0){
log(parseFloat(条[0].getAttribute('width'));
}
});
图表绘制(数据、选项);
函数daysto毫秒(天){
返程天数*24*60*60*1000;
}
});


您的意思是,例如在第一行中,蓝色块的宽度吗?你的意思是以像素为单位的元素宽度吗?谢谢WhiteHat我刚刚有机会回顾了这一点,非常感谢你的回答,这让我感到非常悲伤,并采取了不同的方法,但是我将重新探索我以前的解决方案。本质上,我正在尝试添加自定义功能,允许工具栏“可拖动”,这是谷歌甘特图目前不支持的。再次感谢您的回复!:)