jquery 實現列表上移、下移功能
阿新 • • 發佈:2019-01-08
由於比較忙,好久沒寫新的文章了,雖然本人寫的文章可能對一些高手來說是小菜一碟,但是對於新手來說還是比較難得,重在為和我一樣的小菜鳥提供一個簡單的實現方法,以及一個思路罷了。
那麼,廢話少說,我們開始進入主題。
今天我們實現的是一個列表頁面上移、下移功能。如圖:
當勾選列表中的列時,點選上移或者下移,會動態上移或者下移。
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提供的函式。當然如果想實現多列同時上移下移,只需要加一個迴圈既可,核心程式碼就是上邊的。