动态生成table(带隔行换色,鼠标经过颜色,选中行颜色)

//查询用的AJAX提交请求
SellTicketPage.doAjaxAction = function(sURL) {
	
	new Ajax.Request(sURL, {
				method : "post",
				onSuccess : doAction,
				onFailure : errorAction
			});
	
}

//查询的回调函数
function doAction(Re) {
    //返回的串
	var str = Re.responseText.evalJSON(); 
	
	//构造画表格的二维数组
	var tem = str.StrListContext.evalJSON();   //StrListContext为返回的LIST的JSON串的名字
	tempArray = tem;
	
	//先清空表格
	$("newbody").innerText = '';
	
	//没查询出结果
	if(tem.length ==0){
		document.getElementById("rideDate").focus();
		return;
	}
	//把ID放到数组中,跟隐藏域一样的效果
	var rowNum=0;
	tem.each(function(alpha){ 
       var row=document.createElement("tr"); 
	  row.id=rowNum;
	   row.οnclick= function(){clickRow(this.id);}; 
       //单选按钮
		var cell = document.createElement("td"); 
//	   cell.id = rowNum+''+0;
	     var radio = document.createElement("input"); 
	     radio.type = 'radio';
	     radio.name = 'rtOrderIds';
	     radio.id = 'radio'+rowNum;
	     radio.οnclick= function(){clickCell(this.id);}; 
	   cell.appendChild(radio); 
	   row.appendChild(cell); 
	
		  for(var j=1;j<12;j++){
		   var cell = document.createElement("td"); 
		   cell.id = rowNum+''+j;
			 switch (j) {
				//switch开始实现判断过程
				 case 1:
				 	 cell.appendChild(document.createTextNode(alpha.rtorderCode)); 
					 break;
				 case 2:
				     cell.appendChild(document.createTextNode(alpha.pleaveDt)); 
					 break;
				 case 3:
				     cell.appendChild(document.createTextNode(alpha.stationName)); 
					 break;
				 case 4:
				     cell.appendChild(document.createTextNode(alpha.baseCodeName)); 
					 break;
				 case 5:
				     cell.appendChild(document.createTextNode(alpha.bcRoadtype)); 
					 break;
				 case 6:
				     cell.appendChild(document.createTextNode(alpha.capacity)); 
					 break;
				 case 7:
				     cell.appendChild(document.createTextNode(alpha.seat)); 
					 break;
				 case 8:
				     cell.appendChild(document.createTextNode(alpha.fullPrice)); 
					 break;
				 case 9:
				     cell.appendChild(document.createTextNode(alpha.halfPrice)); 
					 break;
				 case 10:
				     cell.appendChild(document.createTextNode(alpha.lineName)); 
					 break;
				 case 11:
				     cell.appendChild(document.createTextNode(alpha.arrivePeriod)); 
					 break;
			 }
		   row.appendChild (cell); 
		  }
		rowNum++;
		$("newbody").appendChild (row); 
    }); 
   //senfe("表格名称","奇数行背景","偶数行背景","鼠标经过背景","点击后背景");
    senfe("newbody","#f8fbfc","#e5f1f4","#ecfbd4","#bce774");
    
     //默认选中第一行
    document.getElementById("radio0").checked = true;
    document.getElementById("radio0").focus();
    lastCheckRadioId = 'radio0';
    clickRow(0);
}

function senfe(o,a,b,c,d){
 var t=document.getElementById(o).getElementsByTagName("tr");
 for(var i=0;i<t.length;i++){
  t[i].style.backgroundColor=(t[i].sectionRowIndex%2==0)?a:b;
//  t[i].οnclick=function(){
//   if(this.x!="1"){
//    this.x="1";
//    this.style.backgroundColor=d;
//   }else{
//    this.x="0";
//    this.style.backgroundColor=(this.sectionRowIndex%2==0)?a:b;
//   }
//  }
  t[i].οnmοuseοver=function(){
   if(this.x!="1")this.style.backgroundColor=c;
  }
  t[i].οnmοuseοut=function(){
   if(this.x!="1")this.style.backgroundColor=(this.sectionRowIndex%2==0)?a:b;
  }
 }
}
//行点击事件
function clickRow(index){
 rtOrder.id = tempArray[index]["rtorderId"];//实时班次ID
 rtOrder.fullPrice = tempArray[index]["fullPrice"];//全价票
 rtOrder.halfPrice = tempArray[index]["halfPrice"];//半价票
 rtOrder.seat = tempArray[index]["capacity"];//座位数
 rtOrder.leftSeat = tempArray[index]["seat"];//剩余座位数
 
 var t=document.getElementById('newbody').getElementsByTagName("tr");
 var radioId = "radio"+index; 
     if(t[index].x!="1"){
       //选中标识
       t[index].x="1";
       t[index].style.backgroundColor='#bce774';
     }
   //选中色
      t[index].style.backgroundColor='#bce774';
      if(lastCheckRadioId!=null && lastCheckRadioId!="" && lastCheckRadioId!=radioId){
        var lastIndex = lastCheckRadioId.split("o")[1];
        //还原上次选中行的颜色
    t[lastIndex].style.backgroundColor=(t[lastIndex].sectionRowIndex%2==0)?'#f8fbfc':'#e5f1f4';
    //未选择标识
    t[lastIndex].x="0";
      }
   /**兼容IE7
   * 在IE7下使用document.getElementById(lastCheckRadioId)取不到值,为了保证radio标签只选中一条数据
   * 在IE8下不用写此代码。
   **/
   var radios = getElementsByName_iefix("rtorderGrid","input","type","radio");
   radios[(lastCheckRadioId.split("o")[1])].checked = false;
     /***********************************************/
     
     lastCheckRadioId = radioId;
 //选中行的时候同时选中单选按钮
 document.getElementById(radioId).checked = true;
 document.getElementById(radioId).focus();
 showMoney("");
  
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值