使用JavaScript执行排序

时间:2014-02-05 08:55:01

标签: javascript jquery html

我有一个情况,我需要在一个有n行的表中实现这一点。如果我单击表格中的一行,然后单击另一行。第一次单击行中的内容应转到第二次单击行中的内容,然后每行应向后或向前移动。这可以等同于JQUERY sortable。

示例:

  |1|2|3|4| if i click on 1 and 4 then it should be |2|3|4|1| 

如何记录两次点击,我的行内容是包含许多输入元素的div元素。我想到了这个想法,这是实现可排序的好方法,还是有更好的方法,我想用java脚本来做。

提前感谢。

2 个答案:

答案 0 :(得分:1)

我的脚本功能是这样的。我真的应该想一会儿。我在这里使用了旗帜,我还有两个问题,我可以用旗帜做到吗?有更好的方法吗?

<script>
var flag=0;
var id1;
var id2;
function Myfunction(id)
{
if(flag==0)
{
    id1=id;
    flag=1;
}
else
{
    id2=id; 
    var x=document.getElementById(id1).innerHTML;   
    var num1=parseInt(id1); 
    var num2=parseInt(id2);
    for(var i=num1;i<num2;i++)
    {
        var j=i.toString();
        var k=(i+1).toString();
        document.getElementById(j).innerHTML=document.getElementById(k).innerHTML;
    }
    document.getElementById(id2).innerHTML=x;
    flag=0; 
}   
}
</script>

答案 1 :(得分:1)

我做了一点http://jsfiddle.net/zxKeg/。仅适用于jQuery,不需要额外的插件。希望这会对你有所帮助!

JS代码:

$(document).ready(function() {
    var $table = $('table');
    var $toCopy = null;
    $table.on('click', 'tr', function() {
        if($toCopy === null || $toCopy[0] == this) {
            $toCopy = $(this);
        }
        else {
            $toCopy.remove();
            $(this).after($toCopy);
            $toCopy = null;
        }
    });
});