日期:2014-05-16  浏览次数:20422 次

jquery实现连续选中的TR向下移动
一个table的每个TR钟有一个checkbox。然后将连续选中的TR向下移动一个单位。
我的代码,它的执行顺序是从上往下,所以遇到选中行数位偶数时,位置没有变化;遇到选中行数为奇数时,选中的最后一行会下移其他位置不变。

//向下移动
function movedown(){
$.each($("table input:checked"),function(){
var onthis = $(this).parent().parent();
getdown = onthis.next();
$(getdown).after(onthis);
});
}
jQuery JavaScript CheckBox

------解决方案--------------------
for循环是从上往下的,比如说你勾选了第一行和第二行,
先把第一行往下移(结果第二行变到第一行,第一行变到第二行),再把第二行往下移(结果跟原来一样);

稍微改一下,就可以了,
function movedown(){
    var checkedArray = $("table input:checked");

    for (var i = checkedArray.length - 1; i >= 0; i--) {
        var onthis = $(checkedArray[i]).parent().parent();
        getdown = onthis.next();
        $(getdown).after(onthis);
    }
};

这个程序运行到最后一行时没做判断,供参考^_^