js 变更表结构

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>交换行(支持键盘)</TITLE>
</HEAD>
<BODY onkeydown = "javascript:return refresh();">
 <style>
 .tr{background-color:blue}
 </style>

<div id=info>&nbsp;</div>
<center>
<script type="text/javascript">
 var o1,o2;//全局记录选中的行,和要交换的行的对象
 var o1a=new Array();//保存选中的行
 var o2a=new Array();//保存要交换的行
 var num=0;//选中的单元格所在行的索引
 var numed=0;//要交换的行的索引

//同SetRow(dir),支持键盘上下移动
    function refresh() {
    var o; //选中的单元格
    var start=false;//记录是否选中某行
 
   //判断是否选中某行,并记录该行信息
    for(var j=0;j<document.forms[0].listTd.length;j++){
    if(document.forms[0].listTd[j].checked)
    {
    o=document.forms[0].listTd[j];//设置o
    start=true;//设置start
    num=document.forms[0].listTd[j].parentNode.parentNode.rowIndex;//设置num
    }
     }
    //得到行的集合,根据表的名称"listTable"  
    var trs = document.getElementById("listTable").getElementsByTagName("tr");
    o1=trs[num]; //设置选中的行对象
    //得到每一行有多少列,cells是某行列对象的集合
    var tdLen=trs[num].cells.length;
    o1a.length=tdLen;
    o2a.length=tdLen;
    for(var i=0;i<tdLen;i++){
       o1a[i]=trs[num].cells[i].innerHTML;
       switch (window.event.keyCode) {  
        case 38://上
        numed=num-1;
        o2a[i]=trs[numed].cells[i].innerHTML;
        o2=trs[numed];//设置要交换的行对象         
          break;
        case 40://下
        numed=num+1;
        o2a[i]=trs[numed].cells[i].innerHTML;            
        o2=trs[numed];//设置要交换的行对象
          break;
          default:
          break;
      }
      }
   switchTd(o1,o2,num);
   }

//交换两行
  function switchTd(tr1,tr2,n){
   for(x=0;x<o1a.length;x++){ 
    tr1.cells[x].innerHTML=o2a[x];
    tr1.cells[0].innerHTML=o1a[0];
    tr2.cells[x].innerHTML=o1a[x];
    tr2.cells[0].innerHTML=o2a[0]; 
    tr1.cells[2].childNodes[0].name="p"+o1a[0];
    tr2.cells[2].childNodes[0].name="p"+o2a[0]; 
    }
   tr2.className="tr";
   tr1.className="";
    document.getElementById("info").innerHTML= "&nbsp;  当前位置: "+tr1.cells[2].childNodes[0].name+" &nbsp;  被替换的是:  "+tr1.cells[2].childNodes[0].value+" <br> &nbsp;  当前位置: "+tr2.cells[2].childNodes[0].name+"   &nbsp; 您选择的是: "+tr2.cells[2].childNodes[0].value;
  }

//设置选中的行,和被交换的行到数组中
   function SetRow(dir){
   var o;
   var start=false;
 
   for(var j=0;j<document.forms[0].listTd.length;j++){
   if(document.forms[0].listTd[j].checked)
   {
   o=document.forms[0].listTd[j];
   start=true;
      num=document.forms[0].listTd[j].parentNode.parentNode.rowIndex;
   }
    }
   var trs = document.getElementById("listTable").getElementsByTagName("tr");
   o1=trs[num];
   var tdLen=trs[num].cells.length;
   o1a.length=tdLen;
   o2a.length=tdLen;
  
   for(var i=0;i<tdLen;i++){
     o1a[i]=trs[num].cells[i].innerHTML;
     if(dir=="down"){
     numed = num+1;
     o2a[i]=trs[numed].cells[i].innerHTML;
     }
     else{
   numed = num-1;
    o2a[i]=trs[numed].cells[i].innerHTML;
    }
    }
   if(dir=="down"){
   numed = num+1;
     o2=trs[numed];
   }else{
   numed = num-1;
     o2=trs[numed];
   }
    switchTd(o1,o2,num);
  }

 </script>
    <form  action="">
      <table width="" border="0" cellspacing="0" cellpadding="0">
       <tr>
      <td >
      
        <table width="100%" border="0" cellspacing="1" cellpadding="0" id="listTable" bgcolor="#D57501">
          <tr align="center" bgcolor="#FFFFFF">
         <td height="24">排名</td>
         <td width=100>选择</td>
         <td>您认为金牌总数的排名将是?</td>
          </tr>
          <tr align="center" bgcolor="#FFFFFF" id="1">
         <td>1</td>
         <td><input name="listTd" type="radio" value="radiobutton" id="radio1"></td>
         <td><input name="p1" type="hidden" value="中国">
           中国</td>
          </tr>
          <tr align="center" bgcolor="#FFFFFF">
         <td>2</td>
         <td><input name="listTd" type="radio" value="radiobutton" id="radio2"></td>
         <td><input type="hidden" name="p2" value="美国">
           美国</td>
          </tr>
          <tr align="center" bgcolor="#FFFFFF" id="3">
         <td>3</td>
         <td><input name="listTd" type="radio" value="radiobutton" id="radio3"></td>
         <td><input type="hidden" name="p3" value="俄罗斯">
           俄罗斯</td>
          </tr>
          <tr align="center" bgcolor="#FFFFFF">
         <td>4</td>
         <td><input name="listTd" type="radio" value="radiobutton" id="radio4"></td>
         <td><input type="hidden" name="p4" value="法 国">
           法 国</td>
          </tr>
          <tr align="center" bgcolor="#FFFFFF">
         <td>5</td>
         <td><input name="listTd" type="radio" value="radiobutton" id="radio5"></td>
         <td><input type="hidden" name="p5" value="德 国">
           德 国</td>
          </tr>
          <tr align="center" bgcolor="#FFFFFF">
         <td>6</td>
         <td><input name="listTd" type="radio" value="radiobutton" id="radio6"></td>
         <td><input type="hidden" name="p6" value="英 国">
           英 国</td>
          </tr>
          <tr align="center" bgcolor="#FFFFFF">
         <td>7</td>
         <td><input name="listTd" type="radio" value="radiobutton" id="radio7"></td>
         <td><input type="hidden" name="p7" value="日 本">
           日 本</td>
          </tr>
          <tr align="center" bgcolor="#FFFFFF">
         <td>8</td>
         <td><input name="listTd" type="radio" value="radiobutton" id="radio8"></td>
         <td><input type="hidden" name="p8" value="韩 国">
           韩 国</td>
          </tr>
        </table>
        
        </td>
      <td width="322" valign="top"><a href="javascript:SetRow('up');" class="btlink2"  οnclick="">↑向上移动</a><div style="margin-top:10px"><a href="javascript:SetRow('down');" class="btlink" οnclick="">↓向下移动</a></div></td>
       </tr>
     </table>

</form>
</BODY>
</HTML>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值