【发布时间】:2011-07-13 12:23:23
【问题描述】:
我有这段代码,它在 firebug 中给了我以下输出,所以根据这个输出我可以过滤 td 并分配不同的背景颜色,对吧?
我的代码
loadComplete: function() {
var i, names=this.p.groupingView.sortnames[0], l = names.length;
for (i=0;i<l;i++) {
if (names[i]==='envVariable') {
$(this).jqGrid('groupingToggle',this.id+"ghead_"+i);
} else {
// hide the grouping row
$('#'+this.id+"ghead_"+i).hide();
}
}
var getColumnIndexByName = function(grid, columnName) {
var cm = grid.jqGrid('getGridParam','colModel'),i=0,l=cm.length;
for (; i<l; i++) {
if (cm[i].name===columnName) {
return i; // return the index
}
}
return -1;
};
var iCol = getColumnIndexByName($(this),'isEqual'),
cRows = this.rows.length, iRow, row, className;
for (iRow=0; iRow<cRows; iRow++) {
row = this.rows[iRow];
className = row.className;
if ($.inArray('jqgrow', className.split(' ')) > 0) { // $(row).hasClass('jqgrow')
//this prints into console
console.info(row.cells[iCol]);
//here i am trying to apply filter
$(row.cells[iCol])
.filter("false")
.css("background", "#c8ebcc",
"background-color", "#DCFFFF",
"background-image", "none");
}
}
}
**更新**
@Oleg:我需要隐藏所有 isEqual 为 true 的行,只显示 isEqual 为 false 的行 背景颜色全部改变。所以我修改了您的代码,如下所示,但它并没有隐藏行,它只是显示整个内容,没有任何更改,我哪里出错了?
var i, l, data = this.p.data, rows = this.rows, item;
l = data.length;
for (i=0;i<l;i++) {
item = data[i];
if (!item.isEqual) {
$(rows.namedItem(item._id_))
.css({
"background-color": "#DCFFFF",
"background-image": "none"
});
}
else
{
$(rows.namedItem(item._id_)).hide();
}
}
【问题讨论】:
-
请澄清您的问题,因为不清楚,对吧? :)
-
您希望所有标题为 false 的 td 获得相同的背景吗?