javascript - 谷歌图表删除带有多个复选框的列

标签 javascript jquery checkbox google-visualization

语言:jQuery、javascript

下面的代码:运行良好。

(...)
var check_box_values = $('#myForm [type="checkbox"]:not(:checked)').map(function () 
{
    return this.value;
}).get();

下面的代码:运行良好。

function f(check_box_values)
{
    (...)
    var obj = jQuery.parseJSON(jsonData);
    var data = google.visualization.arrayToDataTable(obj);

下面的代码:for 循环运行良好,但 if 语句从未启动

for (var i = 1; i < data.getNumberOfColumns()-1; i++)
{
    if ($.inArray(i, check_box_values) > -1) 
    { 
        data.removeColumn(i);
    }
}

HTML 代码:运行良好。

我做错了什么? 注意:check_box_values 数组已填充。

编辑:(例如)
getNumberOfColumns:6

check_box_values array: [1,3,5]

最佳答案

我发现您的代码有问题。一旦调用 data.removeColumn,列索引将被重置,并且 getNumberOfColumns() 的结果将与您期望的不同。换句话说,这个函数不是设计来在循环内调用的。

这是一个例子。假设您有五列,columIndex 的范围为 0-4。您想要删除第三列 (columnIndex: 2) 和第五列 (columnIndex: 4)。一旦你的代码第一次被执行,即removeColumn(2),列索引将被移动并且getNumberOfColumns()将变成4。如果你调用removeColumn(4),它将导致运行时错误,因为索引不指向任何列。您应该调用removeColumn(3)。

关于javascript - 谷歌图表删除带有多个复选框的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13532059/

相关文章:

javascript - 从 Meteor 中的另一个模板获取 react 变量

javascript - select2 默认值不完整

javascript - 在运行时更改元素 ID Jquery

javascript - 如何解决通过ajax发送数据 "Item is undefined: if (item.guid != null)"错误

select - jqgrid单选复选框

c# - 检查 GridView 中的所有复选框

javascript - 取消确认仍然提交表格

javascript - JQuery UI resizable不支持位置: fixed; Any recommendations?

jquery - 当我单击复选框时,未通过each() 选中该复选框

javascript - d3 v4 模块从 require 切换到 import