Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Timeline-根据名称更改数据的颜色_Javascript_Google Apps Script_Graph_Charts_Timeline - Fatal编程技术网

Javascript Google Timeline-根据名称更改数据的颜色

Javascript Google Timeline-根据名称更改数据的颜色,javascript,google-apps-script,graph,charts,timeline,Javascript,Google Apps Script,Graph,Charts,Timeline,我有一个谷歌时间表,如下面的代码所示,我想更改标题为“黑色”的任何条目的颜色。 我似乎无法让它工作,我尝试了一些不同的解决方案。这是我的密码: Html: Javascript: var myData = [ ['Category', 'Name', {role: 'style'}, 'Start', 'End'], ['Foo', 'BLACK', '', new Date(2014, 7, 1), new Date(2014, 7, 5)],

我有一个谷歌时间表,如下面的代码所示,我想更改标题为“黑色”的任何条目的颜色。 我似乎无法让它工作,我尝试了一些不同的解决方案。这是我的密码:


Html:


Javascript:

var myData = [
        ['Category', 'Name', {role: 'style'}, 'Start', 'End'],
        ['Foo', 'BLACK', '', new Date(2014, 7, 1), new Date(2014, 7, 5)],
        ['Foo', 'Homer', '', new Date(2014, 7, 6), new Date(2014, 7, 8)],
        ['Bar', 'Marge', '', new Date(2014, 7, 2), new Date(2014, 7, 9)]
    ]

        for(i=1;i<myData.length;i++){
    if(myData[i].Name == 'BLACK'){
        data[i].style = '#000000';
    }}


function drawChart() {

    var data = google.visualization.arrayToDataTable(myData);



    var chart = new google.visualization.Timeline(document.querySelector('#chart_div'));
    chart.draw(data, {
        height: 300,
        width: 600
    });
}
google.load('visualization', '1', {packages:['timeline'], callback: drawChart});
var myData=[
['Category','Name',{role:'style'},'Start','End'],
新日期(2014年7月1日),新日期(2014年7月5日),
新日期(2014年7月6日),新日期(2014年7月8日)],
新日期(2014年7月2日),新日期(2014年7月9日)]
]

对于(i=1;i这里的问题是,您使用的是
数组
,但是您将它们视为
对象
myData[i]
没有
名称
的属性,因为它是一个
数组
。不过,您可以通过获取
myData[i][1]
(存储名称的数组中的插槽)。您可以用此替换for循环代码以更改颜色属性(
myData[i][2]


for(i=1;顶部if语句中的idata将
未定义
,因为它只在函数scopeHmm中声明过,我不确定要修复什么。您是否有可能更改JSFIDLE?(还注意到我在if语句中调用了'data',而不是'myData'))。更改它似乎并没有解决问题。您的JSFIDLE不起作用,因为您没有给它提供
google
来自的任何包。如果您查看浏览器控制台,您可以看到
google没有定义
FIDLE可以工作-您可能只需要给它一秒钟的时间来加载。google应该会自动在这方面工作-我已经测试过了在多个浏览器和计算机上运行。也许可以尝试Chrome?(虽然我理解,如果您不想提供帮助,也可以)。您是对的,似乎我的浏览器正在阻止扩展。我会尝试让它工作
var myData = [
        ['Category', 'Name', {role: 'style'}, 'Start', 'End'],
        ['Foo', 'BLACK', '', new Date(2014, 7, 1), new Date(2014, 7, 5)],
        ['Foo', 'Homer', '', new Date(2014, 7, 6), new Date(2014, 7, 8)],
        ['Bar', 'Marge', '', new Date(2014, 7, 2), new Date(2014, 7, 9)]
    ]

        for(i=1;i<myData.length;i++){
    if(myData[i].Name == 'BLACK'){
        data[i].style = '#000000';
    }}


function drawChart() {

    var data = google.visualization.arrayToDataTable(myData);



    var chart = new google.visualization.Timeline(document.querySelector('#chart_div'));
    chart.draw(data, {
        height: 300,
        width: 600
    });
}
google.load('visualization', '1', {packages:['timeline'], callback: drawChart});
for(i=1;i<myData.length;i++){
    if(myData[i][1] == 'BLACK'){
        myData[i][2] = '#000000';
    }
}