⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 table_nly.txt

📁 javascript编程的组件
💻 TXT
字号:
/////////////////////////////////////////////////////////////////////
// 20040218
/////////////////////////////////////////////////////////////////////
// 1. 为表格增加一行 TableObject_InsertRow
//                                           ( Proc_Table_InsertRow )
// 2. 删除多行       Proc_Table_DeleteRow
//
//
/////////////////////////////////////////////////////////////////////

// 宁立宇 20040305

function TableObject( theTable )
{
	this.tableid = theTable;
	this.table = null;
	this.FirstTR = null;
	this.FirstTRArray = null;
	this.colnum = 0;
	this.init = TableObject_Init; 		
	this.insertRow = TableObject_InsertRow;
	this.columnAttributes ;
	this.init();
	this.setColumnAttributes = TableObject_SetColumnAttributes;
	this.getColumnAttributes = TableObject_GetColumnAttributes;
	
}

function TableObject_SetColumnAttributes(theArrayList)
{
	this.columnAttributes = theArrayList;	
}
function TableObject_GetColumnAttributes( )
{
	return this.columnAttributes ;	
}

function TableObject_Init()
{	  
	
	this.table = document.getElementById( this.tableid );	  
	 
	this.FirstTR = this.table.rows(1); 
	this.colnum = this.FirstTR.cells.length;
	 
	this.FirstTRArray = new Array( this.colnum + 1 );
    var i=0;
	for(i=0;i<this.colnum;i++)
	{
		this.FirstTRArray[i] = this.FirstTR.cells[i].innerHTML; 
	}	
	 
} 

//为表格增加一行

function Proc_Table_InsertRow( theTableObj )
{   
   
   row = theTableObj.table.insertRow();  
   var cell;
   for(i=0;i<theTableObj.colnum;i++)
   {
   	   cell = row.insertCell();      
   	   cell.innerHTML = theTableObj.FirstTRArray[i];
   }        
}
// 宁立宇 20040305 带复选框的增加一行
function Proc_Table_InsertRowCheckBox( theTableObj )
{   
   
   row = theTableObj.table.insertRow();  
   var cell;
   for(i=0;i<theTableObj.colnum;i++)
   {
   	   cell = row.insertCell();      
   	   cell.innerHTML = theTableObj.FirstTRArray[i];
   }       
   checkelement = row.cells[0].all.tags("INPUT").item(0).checked = false;
}




var rowIndex;
var cellIndex;

var preTR;
var curTR;

var trnum;
//删除多行
function Proc_Table_DeleteRow( theTable)
{
     var rownum = theTable.table.rows.length;
	 for(i=rownum-1;i>0;i--)
	 {
	 	inn=theTable.table.rows[i].cells[0].innerHTML;	
		inn = inn.toLowerCase();
		var boo = inn.search( "checked");
		if(boo>0)
		{
			if(i==1){
			alert("您不能删除第一个数据行!");
			}
			else{ 
			theTable.table.deleteRow(i);
			}
	 	}
	 }
}
var moverowIndex;
var trElement;
var pre;
var unclicktr;
var clicktr;
//用于添加删除的鼠标移动
function Event_Table_Onmousemove()
{
    var theElement = window.event.srcElement;
    var tagName = theElement.tagName;
	var moverowIndex;
	if( tagName == "TD" )
    {
            tr = theElement.parentElement;
            moverowIndex = tr.rowIndex;//当前第几行
			var check=tr.cells[0].innerHTML;
			check = check.toLowerCase();
			var boo = check.search( "checked");			
			if(moverowIndex!=0){
				if(pre != null&&pre!=clicktr){
						pre.style.backgroundColor="#FFFFFF"; 
				}
				/*if(pre==unclicktr){
						pre.style.backgroundColor="#FFFFFF"; 
				}*/
				if(boo>0){
					tr.style.backgroundColor="#85C0E0"
				}
				else{
					tr.style.backgroundColor="#cccccc";
					pre = tr;
				}
			}
			
    }
}

//普通表格的鼠标移动
function Event_Table_OnmousemoveOne()
{
    var theElement = window.event.srcElement;
    var tagName = theElement.tagName;
	var moverowIndex;
	if( tagName == "TD" )
    {
            tr = theElement.parentElement;
            moverowIndex = tr.rowIndex;
			if(moverowIndex != 0&&moverowIndex !=rowIndex ){
				if( pre != null &&pre!=preTR)
            		{
            		pre.style.backgroundColor="#FFFFFF";            	            	
            		}
				tr.style.backgroundColor="#cccccc"
				pre = tr;
				
			}
    }
}

var sort_col;

// 宁立宇 20040305
function Event_Table_OnClick()
{
    var theElement = window.event.srcElement;
    var checkelement;
    if(document.all)
    {
        var tagName = theElement.tagName;
        if( tagName == "TD" )
        {
            trElement = theElement.parentElement;
			//the_table=theElement.parentElement.parentElement;
            rowIndex = trElement.rowIndex;
			cellIndex = theElement.cellIndex;
			
			var check=trElement.cells[0].innerHTML;
			check = check.toLowerCase();
			var boo = check.search( "checked");
            if( rowIndex != 0 )//不是第一行表头
            {
            	checkelement = trElement.cells[0].all.tags("INPUT").item(0);
            	
				if(boo>=0)
				{
					trElement.style.backgroundColor="#ffffff";					
					checkelement.checked = false;
					unclicktr = trElement;
				}
				else
				{
            		trElement.style.backgroundColor="#85C0E0";
					checkelement.checked = true;
					clicktr = trElement;
				}
            }
	    }
	}	
}


//带复选框的选中多行 
//mod: 这个程序有问题:innerHTML ="<input name=checkbox type=che
// 应修正,暂时取消此功能
function Event_Table_OnClickTmp20040305()
{
    var theElement = window.event.srcElement;
    if(document.all)
    {
        var tagName = theElement.tagName;
        if( tagName == "TD" )
        {
            trElement = theElement.parentElement;
			//the_table=theElement.parentElement.parentElement;
            rowIndex = trElement.rowIndex;
			cellIndex = theElement.cellIndex;
			var check=trElement.cells[0].innerHTML;
			check = check.toLowerCase();
			var boo = check.search( "checked");
            if( rowIndex != 0 )//不是第一行表头
            {
				if(boo>=0)
				{
					trElement.style.backgroundColor="#ffffff";
					trElement.cells[0].innerHTML ="<input name=checkbox type=checkbox class=checkbox value=checkbox>"
					unclicktr = trElement;
				}
				else
				{
            	trElement.style.backgroundColor="#85C0E0";
				trElement.cells[0].innerHTML ="<input name=checkbox type=checkbox class=checkbox value=checkbox checked=true>"
					clicktr = trElement;
				}
            }
	    }
	}	
}

//普通表格的选中单行
function Event_Table_OnClickOne()
{
    var theElement = window.event.srcElement;
     
    if(document.all)
    {
        // 元素标记名
        var tagName = theElement.tagName;
        //var id = theElement.id;
       
        if( tagName == "TD" )
        {
            parentElement = theElement.parentElement;
			var the_table	= get_Element(theElement,"table");                    
            rowIndex = parentElement.rowIndex;
            cellIndex = theElement.cellIndex;
            
            if( rowIndex != 0 )
            {
            	if( preTR != null )
            	{
            		preTR.style.backgroundColor="#FFFFFF";            	            	
            	}
            	parentElement.style.backgroundColor="#85C0E0";
            	preTR = parentElement;
            }
            /**
			else{//单击表头
			 
				theElement.mode = !theElement.mode; 
				if(sort_col!=null){
					with(the_table.rows[0].cells[sort_col])
						removeChild(lastChild);
				}
				with(the_table.rows[0].cells[cellIndex])
				
					appendChild(theElement.mode?arrowUp:arrowDown);
					
					sort_tab(the_table,cellIndex,theElement.mode);
					sort_col=cellIndex;
			}
			*/
     
	    }
	}	
}

//普通表格的选中单行
function Event_Table_OnClickOne_Caller( theCaller )
{
    var theElement = window.event.srcElement;
     
    if(document.all)
    {
        // 元素标记名
        var tagName = theElement.tagName;
        //var id = theElement.id;
       
        if( tagName == "TD" )
        {
            parentElement = theElement.parentElement;
			var the_table	= get_Element(theElement,"table");                    
            rowIndex = parentElement.rowIndex;
            cellIndex = theElement.cellIndex;
            theCaller.doSelect( rowIndex, cellIndex );
            
            if( rowIndex != 0 )
            {
            	if( preTR != null )
            	{
            		preTR.style.backgroundColor="#FFFFFF";            	            	
            	}
            	parentElement.style.backgroundColor="#85C0E0";
            	preTR = parentElement;
            }
            /**
			else{//单击表头
				theElement.mode = !theElement.mode;
				if(sort_col!=null){
					with(the_table.rows[0].cells[sort_col])
						removeChild(lastChild);
				}
				with(the_table.rows[0].cells[cellIndex])
				
					appendChild(theElement.mode?arrowUp:arrowDown);
					
					sort_tab(the_table,cellIndex,theElement.mode);
					sort_col=cellIndex;
			}
           **/
	    }
	}	
}


	arrowUp = document.createElement("SPAN");//创建标签为<SPAN>的元素
	arrowUp.innerHTML	= "5";//为创建的元素赋值
	arrowUp.style.cssText 	= "PADDING-RIGHT: 0px; MARGIN-TOP: -3px; PADDING-LEFT: 0px; FONT-SIZE: 10px; MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 2px; OVERFLOW: hidden; WIDTH: 10px; COLOR: blue; PADDING-TOP: 0px; FONT-FAMILY: webdings; HEIGHT: 11px";
    //为创建的元素定义属性类型
	
	//同理创建第二个标签为<SPAN>的元素
	arrowDown = document.createElement("SPAN");
	arrowDown.innerHTML	= "6";
	arrowDown.style.cssText = "PADDING-RIGHT: 0px; MARGIN-TOP: -3px; PADDING-LEFT: 0px; FONT-SIZE: 10px; MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 2px; OVERFLOW: hidden; WIDTH: 10px; COLOR: blue; PADDING-TOP: 0px; FONT-FAMILY: webdings; HEIGHT: 11px";
function sort_tab(the_tab,col,mode){
	var tab_arr = new Array();
	var i;
	var start=new Date;
	for(i=1;i<the_tab.rows.length;i++){
		tab_arr.push(new Array(the_tab.rows[i].cells[col].innerText.toLowerCase(),the_tab.rows[i]));
	}
	function SortArr(mode) {
		return function (arr1, arr2){
			var flag;
			var a,b;
			a = arr1[0];
			b = arr2[0];
			if(/^(\+|-)?\d+($|\.\d+$)/.test(a) && /^(\+|-)?\d+($|\.\d+$)/.test(b)){
				a=eval(a);
				b=eval(b);
				flag=mode?(a>b?1:(a<b?-1:0)):(a<b?1:(a>b?-1:0));
			}else{
				a=a.toString();
				b=b.toString();
				if(a.charCodeAt(0)>=19968 && b.charCodeAt(0)>=19968){
					flag = judge_CN(a,b,mode);
				}else{
					flag=mode?(a>b?1:(a<b?-1:0)):(a<b?1:(a>b?-1:0));
				}
			}
			return flag;
		};
	}
	tab_arr.sort(SortArr(mode));

	for(i=0;i<tab_arr.length;i++){
		the_tab.lastChild.appendChild(tab_arr[i][1]);
	}

	window.status = " (Time spent: " + (new Date - start) + "ms)";
}

function judge_CN(char1,char2,mode){
	var charSet=charMode?charPYStr:charBHStr;
	for(var n=0;n<(char1.length>char2.length?char1.length:char2.length);n++){
		if(char1.charAt(n)!=char2.charAt(n)){
			if(mode) return(charSet.indexOf(char1.charAt(n))>charSet.indexOf(char2.charAt(n))?1:-1);
			else	 return(charSet.indexOf(char1.charAt(n))<charSet.indexOf(char2.charAt(n))?1:-1);
			break;
		}
	}
	return(0);
}
function get_Element(the_ele,the_tag){
	the_tag = the_tag.toLowerCase(); //toLowerCase的功能:大写转换为小写
	if(the_ele.tagName.toLowerCase()==the_tag)return the_ele;
	while(the_ele=the_ele.offsetParent){
		if(the_ele.tagName.toLowerCase()==the_tag)return the_ele;
	}
	return(null);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -