第一次写jquery的插件,写的不好,希望大家多提意见,多多包涵。
事情是这个样子的,在项目中用到jqgrid这个插件来做表格,说实话,这个插件写的确实不错,功能强大,长的也不错,用起来也方便,但是随着客户的要求越来越高,越来越苛刻,jqgrid有点不太能满足要求了,可是项目已经进行了不短的时间了,现在再把这个插件换点,貌似有点不太合适,只好想办法进行修改,尽量让jqgrid来满足客户的需求,于是现学现卖,搞了一个非常简单的插件,用来实现jqgrid的rowspan效果(我在jqgrid的官网上一直没有能找到这样的效果,如果有那个前辈知道jqgrid自带这样的效果,还请指教)。
不废话了,直接上代码
/*用法
* $("#tableId").jqGridTableRowSpan("3,6,4");//要合并的行数,也就是rowspan的值,从第一行开始
* 仅仅只适用于jqGrid
*
*
*/
jQuery.fn.jqGridTableRowSpan = function(colIndexs) {
return this.each(function() {
var indexs = eval("([" + colIndexs + "])");
var colIdx = 1;
for (var i = 0; i < indexs.length; i++) {
$('tbody tr',this).each(function(row) {
if(row == colIdx){
//console.log(colIdx);
$('td:eq(0)',this).attr("rowSpan",indexs[i]);
}
if(row > colIdx && row < colIdx+indexs[i]){
$('td:eq(0)',this).hide();
}
});
colIdx += indexs[i];
}
});
};
其实也比较简单,就是在对应的行上给rowSpan 属性,当然这个里面有很多不完善的地方,以后有机会,继续完善