1. 程式人生 > >jquery 實現列表上移、下移功能

jquery 實現列表上移、下移功能

       由於比較忙,好久沒寫新的文章了,雖然本人寫的文章可能對一些高手來說是小菜一碟,但是對於新手來說還是比較難得,重在為和我一樣的小菜鳥提供一個簡單的實現方法,以及一個思路罷了。

       那麼,廢話少說,我們開始進入主題。

      今天我們實現的是一個列表頁面上移、下移功能。如圖:

      

當勾選列表中的列時,點選上移或者下移,會動態上移或者下移。

html程式碼如下:

    <div>
	          <input type="button" onclick="up();" value=" 上移 ">
	          <input type="button" onclick="down();" value=" 下移 ">
	   </div>
       <div>
		  <table width="400px" height="200" class="mytable"  cellpadding="5"  cellspacing="0">
				<tr>
				   <td>序號</td>
					<td>名字</td>
					 <td>性別</td>
				</tr>
				 <tr>
				   <td><input type="checkbox" id="c1"/>1</td>
					<td>小一</td>
					 <td>男</td>
				</tr>
				 <tr>
				   <td><input type="checkbox" id="c2"/>2</td>
					<td>小二</td>
					 <td>女</td>
				</tr>
				<tr>
				   <td><input type="checkbox" id="c3"/>3</td>
					<td>小三</td>
					 <td>女</td>
				</tr>
		  </table>
	  </div>

我們定義一個css樣式叫做mytable
.mytable td,.mytable{
    font-size:12px;
	color:red;
	border:1px solid #000;
	text-align:center;
    border-collapse:collapse;
  }

然後實現up(),down()方法既可,程式碼如下:
 $.each($("table input:checked"),function(){
	       var onthis=$(this).parent().parent();
		   var getUp=onthis.prev();
		   
		   if ($(getUp).has("input").size()==0)
		   {
		      alert("頂級元素不能上移");
			  return;
		   }
		   $(onthis).after(getUp);
	  });
	}
	 function down(){
	  $.each($("table input:checked"),function(){
	       var onthis=$(this).parent().parent();
		   var getdown=onthis.next();
		   $(getdown).after(onthis);
	  });
	}

大家可以看實現很簡單,我在看公司的程式碼是發現實現的其實很麻煩,於是自己簡化了一下,利用jquery提供的函式。當然如果想實現多列同時上移下移,只需要加一個迴圈既可,核心程式碼就是上邊的。