jQuery實(shí)現(xiàn)table中的tr上下移動(dòng)并保持序號(hào)不變的實(shí)例代碼

字號(hào):


    下面小編就為大家?guī)?lái)一篇jQuery實(shí)現(xiàn)table中的tr上下移動(dòng)并保持序號(hào)不變的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。
    jQueryMoveTr.html 代碼如下: 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
     <TITLE>jQuery-bhang</TITLE>
     <script type="text/javascript" src="jquery-1.6.2.js"></script>
     <script type="text/javascript" src="jquery-rlutil-1.6.2.js"></script>
     </HEAD>
     <BODY>
      <table id="show_table_id">
        <tr>
          <td><input type="text" name="td_num_tn" readonly="true" value="1" /></td>
          <td>aaaaaaaaaa</td>
          <td>@@@@@@@</td>
          <td><input type="button" name="btn1" value="↑" onclick="prevMoveTrCommand(this, 'show_table_id', 'td_num');" />  <input type="button" name="btn2" value="↓" onclick="nextMoveTrCommand(this, 'show_table_id', 'td_num');" /></td>
          <td>注釋1</td>
        </tr>
        <tr>
          <td><input type="text" name="td_num_tn" readonly="true" value="2" /></td>
          <td>bbbbbbbbbbbbb</td>
          <td>#########</td>
          <td><input type="button" name="btn1" value="↑" onclick="prevMoveTrCommand(this, 'show_table_id', 'td_num');" />  <input type="button" name="btn2" value="↓" onclick="nextMoveTrCommand(this, 'show_table_id', 'td_num');" /></td>
          <td>注釋2</td>
        </tr>
        <tr>
          <td><input type="text" name="td_num_tn" readonly="true" value="3" /></td>
          <td>cccccccccccc</td>
          <td>$$$$$$$$$$$$</td>
          <td><input type="button" name="btn1" value="↑" onclick="prevMoveTrCommand(this, 'show_table_id', 'td_num');" />  <input type="button" name="btn2" value="↓" onclick="nextMoveTrCommand(this, 'show_table_id', 'td_num');" /></td>
          <td>注釋3</td>
        </tr>
        <tr>
          <td><input type="text" name="td_num_tn" readonly="true" value="4" /></td>
          <td>ddddddddddddd</td>
          <td>&&&&&&&&&&&&&</td>
          <td><input type="button" name="btn1" value="↑" onclick="prevMoveTrCommand(this, 'show_table_id', 'td_num');" />  <input type="button" name="btn2" value="↓" onclick="nextMoveTrCommand(this, 'show_table_id', 'td_num');" /></td>
          <td>注釋4</td>
        </tr>
        <tr>
          <td><input type="text" name="td_num_tn" readonly="true" value="5" /></td>
          <td>eeeeeeeeeeeeee</td>
          <td>***************</td>
          <td><input type="button" name="btn1" value="↑" onclick="prevMoveTrCommand(this, 'show_table_id', 'td_num');" />  <input type="button" name="btn2" value="↓" onclick="nextMoveTrCommand(this, 'show_table_id', 'td_num');" /></td>
          <td>注釋5</td>
        </tr>
      </table>
     </BODY>
    </HTML>
    jquery-rlutil-1.6.2.js 代碼如下: 
    * 功能:使帶有序號(hào)的table表格中的tr內(nèi)容上下移動(dòng)并保持序號(hào)不變
     *
     * 函數(shù)使用要求:
     * 1、要求在使用此函數(shù)前必須先引用 jquery-1.6.2.js 文件
     * 2、上移按鈕的name屬性必須是 btn1,下移按鈕的name屬性必須是 btn2
     * 3、要有一個(gè)id=show_table_id的table元素,這個(gè)table元素里面放置n個(gè)tr套td的信息,其中有一個(gè)td的text是input框,input的value是序號(hào)值
     * 4、要求所有text內(nèi)容為序號(hào)的td的class屬性為 td_num
     *
     * @param: obj為一個(gè)button的對(duì)象
     * @param: table_self_id為table的id值
     * @param: td_self_id為內(nèi)容是input序號(hào)框的td的class的屬性值
     */
    /上移指令
    function prevMoveTrCommand(obj, table_self_id, td_self_id){
      *
      //不帶表頭的寫法  
    var $jqFirstTr = jQuery("#"+table_self_id+" tr:first-child"); 
     //獲得第一個(gè)tr的對(duì)象  
     var firstTrVal = $jqFirstTr.find("."+td_self_id+" input:nth-child(1)").val();  
    //獲得第一個(gè)tr里的input的value的序號(hào)  
    var objVal = jQuery(obj).parent().parent().find("."+td_self_id+" input:nth-child(1)").val(); 
    //獲得本身tr的序號(hào) 帶表頭的寫法
      var $jqFirstTr = jQuery("#"+table_self_id+" tr:nth-child(2)"); 
    /*獲得第二個(gè)tr的對(duì)象*/
     var firstTrVal = $jqFirstTr.find("."+td_self_id+" input:nth-child(1)").val(); 
     /*獲得第一個(gè)tr里的input的value的序號(hào)*/
     var objVal = jQuery(obj).parent().parent().find("."+td_self_id+" input:nth-child(1)").val();
    /*獲得本身tr的序號(hào)*/
      if(objVal == firstTrVal){ 
      /*判斷是否在把第一行向上移*/
       return;
      }else{
        prevMoveTrOpra(obj, td_self_id); 
       /*調(diào)用上移操作方法*/
     }
    }
    /*上移操作*/
    function prevMoveTrOpra(obj, td_self_id){
      var $jqObj = jQuery(obj).parent().parent().clone();   /*獲得并復(fù)制本身tr的信息*/  var $jqSublObj = jQuery(obj).parent().parent().prev();<span> /*獲得上一個(gè)tr的信息*/</span>  $jqSublObj.find("."+td_self_id+" input:nth-child(1)").val(Number($jqSublObj.find("."+td_self_id+" input:nth-child(1)").val())+1);<span> /*把上一個(gè)tr序號(hào)加1*/</span>  jQuery(obj).parent().parent().html("").append($jqSublObj.html());  <span> /*把本身tr清空并插入上一個(gè)信息*/</span>  
      $jqObj.find("."+td_self_id+" input:nth-child(1)").val(Number($jqObj.find("."+td_self_id+" input:nth-child(1)").val())-1);    /*把本身tr序號(hào)減1*/  $jqSublObj.html("").append($jqObj.html());   /*把上一個(gè)tr清空并插入臨時(shí)保存的tr信息*/
      $jqObj.remove(); /*刪除復(fù)制的多余jQuery對(duì)象*/}
      /*下移指令*/  function nextMoveTrCommand(obj, table_self_id, td_self_id){
      var $jqLastTr = jQuery("#"+table_self_id+" tr:last-child"); <span>/*獲得最后一個(gè)tr的對(duì)象*/</span>   var lastTrVal = $jqLastTr.find("."+td_self_id+" input:nth-child(1)").val();    /*獲得最后一個(gè)tr的序號(hào)*/   var objVal = jQuery(obj).parent().parent().find("."+td_self_id+" input:nth-child(1)").val(); <span> /*獲得本身tr的序號(hào)*/</span>  if(objVal == lastTrVal){ <span>/*判斷是否想把最后一行往下移*/</span>    return;
      }else{
        nextMoveTrOpra(obj, td_self_id);  <span>/*調(diào)用下移操作方法*/</span><span><span>   </span> }</span>}
     /*下移操作*/ function nextMoveTrOpra(obj, td_self_id){
      var $jqObj = jQuery(obj).parent().parent().clone(); <span> /*獲得并復(fù)制本身tr的信息*/</span>   var $jqSiblObj = jQuery(obj).parent().parent().next(); <span> /*獲得下一個(gè)tr的信息*/  </span>  $jqSiblObj.find("."+td_self_id+" input:nth-child(1)").val(Number($jqSiblObj.find("."+td_self_id+" input:nth-child(1)").val())-1); <span> /*把下一個(gè)tr序號(hào)減1*/</span><span>
    </span>  jQuery(obj).parent().parent().html("").append($jqSiblObj.html()); <span>/*把本身tr清空并插入下一個(gè)tr信息*/</span><span>
    </span>  $jqObj.find("."+td_self_id+" input:nth-child(1)").val(Number($jqObj.find("."+td_self_id+" input:nth-child(1)").val())+1); <span>/*把本身tr序號(hào)加1*/</span><span>
    </span>  $jqSiblObj.html("").append($jqObj.html()); <span>/*把下一個(gè)tr清空并插入臨時(shí)保存的tr信息*/</span><span>
    </span>  $jqObj.remove();  /*刪除復(fù)制的多余jQuery對(duì)象*/ }
    jswension.html 代碼如下:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
     <TITLE>JavaScript拼接版</TITLE>
     <meta http-equiv="Content-Type" content="text/html; charset=GBK">
     <script type="text/javascript" src="jquery-1.6.2.js"></script>
     <script type="text/javascript" src="jquery-rlutil-1.6.2.js"></script>
     <script type="text/javascript">
      [color=green]/*onclick=prevMoveTrCommand(this,'show_table_id','td_num'); 這個(gè)地方千萬(wàn)不要帶空格,否則亂碼*/[/color]
      jQuery(document).ready(function(){
        var str = "";
        str += "<tr>";
        str += "<td class='td_num'><input type='text' name='td_num_tn' readonly='true' style='border:0px; width:10px;' value='1' /></td>";
        str += "<td>aaaaaaaaaa</td>";
        str += "<td>@@@@@@@</td>";
        str += "<td align='center'><input type='button' name='btn1' value='↑' onclick=prevMoveTrCommand(this,'show_table_id','td_num'); />";
        str += " <input type='button' name='btn2' value='↓' onclick=nextMoveTrCommand(this,'show_table_id','td_num'); /></td>";
        str += "<td>注釋1</td>";
        str += "</tr>";
        str += "<tr>";
        str += "<td class='td_num'><input type='text' name='td_num_tn' readonly='true' style='border:0px; width:10px;' value='2' /></td>";
        str += "<td>bbbbbbbbbbbbb</td>";
        str += "<td>#########</td>";
        str += "<td align='center'><input type='button' name='btn1' value='↑' onclick=prevMoveTrCommand(this,'show_table_id','td_num'); />";
        str += " <input type='button' name='btn2' value='↓' onclick=nextMoveTrCommand(this,'show_table_id','td_num'); /></td>";
        str += "<td>注釋2</td>";
        str += "</tr>";
        str += "<tr>";
        str += "<td class='td_num'><input type='text' name='td_num_tn' readonly='true' style='border:0px; width:10px;' value='3' /></td>";
        str += "<td>cccccccccccc</td>";
        str += "<td>$$$$$$$$$$$$</td>";
        str += "<td align='center'><input type='button' name='btn1' value='↑' onclick=prevMoveTrCommand(this,'show_table_id','td_num'); />";
        str += " <input type='button' name='btn2' value='↓' onclick=nextMoveTrCommand(this,'show_table_id','td_num'); /></td>";
        str += "<td>注釋3</td>";
        str += "</tr>";
        str += "<tr>";
        str += "<td class='td_num'><input type='text' name='td_num_tn' readonly='true' style='border:0px; width:10px;' value='4' /></td>";
        str += "<td>ddddddddddddd</td>";
        str += "<td>&&&&&&&&&&&&&</td>";
        str += "<td align='center'><input type='button' name='btn1' value='↑' onclick=prevMoveTrCommand(this,'show_table_id','td_num'); />";
        str += " <input type='button' name='btn2' value='↓' onclick=nextMoveTrCommand(this,'show_table_id','td_num'); /></td>";
        str += "<td>注釋4</td>";
        str += "</tr>";
        str += "<tr>";
        str += "<td class='td_num'><input type='text' name='td_num_tn' readonly='true' style='border:0px; width:10px;' value='5' /></td>";
        str += "<td>eeeeeeeeeeeeee</td>";
        str += "<td>***************</td>";
        str += "<td align='center'><input type='button' name='btn1' value='↑' onclick=prevMoveTrCommand(this,'show_table_id','td_num'); />";
        str += " <input type='button' name='btn2' value='↓' onclick=nextMoveTrCommand(this,'show_table_id','td_num'); /></td>";
        str += "<td>注釋5</td>";
        str += "</tr>";
        $("#show_table_id").html(str);
      });
     </script>
     </HEAD>
     <BODY>
      <table id="show_table_id"></table> 
     </BODY>
    </HTML>
    以上這篇jQuery實(shí)現(xiàn)table中的tr上下移動(dòng)并保持序號(hào)不變的實(shí)例代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考