本来bt是有自己的获取选中方法的,但是,它只会返回数据,并不会返回index
具体用法如下

var selectRows = $("#tb_data").bootstrapTable('getSelections')

网上还有一个getAllSelections的参数,但是我的bootstrap-table.js中并没有这个参数,官网下载的版本也没有,建议大家不要用了。
去查了一个getSelections这个方法,它其实就是遍历表格数据,去找第一列也就是复选框列的值是不是true,是true就说明被选中了,然后给你把数据返回。

源码:

 key: "getSelections",
 value: function getSelections() {
    var _this18 = this;

    return (this.options.maintainMetaData ? this.options.data : this.data).filter(function (row) {
      return row[_this18.header.stateField] === true;
    });
  }

我本来想着改一下源码,如果是true的话就给这个row加一个index的属性,把行号存进去就行了。
结果报错,估计这里是返回bool类型,不让我做其他的赋值操作;

既然都是遍历,那我自己遍历也是一样的,只要查找每一行的第一列数据是不是true就行了

function getSelections(tableID){
    var indexs = [];
    var selectCount = $("#"+tableID).bootstrapTable('getData',false);
    for(s in selectCount){
        if(selectCount[s]['0'])	//这个0是第一列数据的属性值,调用的属性如果是数字的话需要写成obj['i']
            indexs.push(s);
    }
    return indexs;
}

这样就可以返回所有选中的index

更多推荐

bootstrap-table获取所有选中行数据index