table如何正确的隐藏一列

需要注意:

因为兼容问题使用jquery的hide

hide()在IE下改变了表结构,导致获得的cellIndex不准确

改变宽度高度为0的试了,不可以

 

$(function(){
	var isCleanList = $("[id$='isCleanList']").val();
	if(isCleanList == '1'){ //查询已清理账户

	}else{ // 查询未清理账户
		hideColByObj($("[id$='feedbackDateLab']")[1]); //处理日期 注意顺序
		hideColByObj($("[id$='undoReasonLab']")[1]); //不处理原因
		hideColByObj($("[id$='feedbackResultLab']")[1]); //反馈结果
	}
});


/**
 * 隐藏某一列
 * @param oTable 表格dom对象
 * @param iCol 列号
 */
function hideColByIndex(oTable, iCol) {
	for (i = 0; i < oTable.rows.length; i++) {
		//用jquery的hide()效果更好
		//oTable.rows[i].cells[iCol].style.display = oTable.rows[i].cells[iCol].style.display == "none" ? "block" : "none";
		$(oTable.rows[i].cells[iCol]).hide(); //注意IE下调用hide方法会改变表结构,不能正确获得cellIndex,所以应该从后向前隐藏
	}
}

/**
 * 隐藏某一列
 * @param oTable 表格dom对象
 * @param colName 列名
 */
function hideColByObj(obj) {
	var otd = nstc.sf.findParent(obj, "TH");
	var cellIndex = otd.cellIndex;
	var otable = nstc.sf.findParent(otd, "TABLE");
	hideColByIndex(otable, cellIndex);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章