表格中单元格之间互相拖动

一个表格里面有些单元格可放,有些单元格不可放,有内容的单元格拖动到可放置的单元格的时候,鼠标松开,把两个单元格的内容互换

你说的是excel中的吗?
如果是的话,你可以使用剪切

把问题说清楚点:
是你要做一个表格中单元格相互拖动的web网页功能吗?
有要求的用什么框架吗?没有的话 用extjs 实现很简单的。

table td拖拽单元格内容交换

在网页实现这种效果,jquery+easyUI实现很方便,以下是我以前做的排班表的脚步部分,供参考:

<style type="text/css">
    .left{
        width:120px;
        float:left;
    }
    .left table{
        background:#E0ECFF;
    }
    .left td{
        background:#eee;
    }
    .right{
        float:right;
        width:600px;
    }
    .right table{
        background:#E0ECFF;
        width:100%;
    }
    .right td{
        background:#fafafa;
        text-align:center;
        padding:2px;
    }
    .right td{
        background:#E0ECFF;
    }
    .right td.drop{
        background:#fafafa;
        width:100px;
    }
    .right td.over{
        background:#FBEC88;
    }
    .item{
        text-align:center;
        border:1px solid #499B33;
        background:#fafafa;
        width:100px;
    }
    .assigned{
        border:1px solid #BC2A4D;
    }
    .clear{
        color:red;
    }

    .style1
    {
        width: 43px;
    }
    .style2
    {
        HEIGHT: 22px;
        width: 43px;
    }

</style>
<script>
    $(function () {
        $('.left .item').draggable({
            revert: true,
            proxy: 'clone'
        });
        $('.right td.drop').droppable({
            onDragEnter: function () {
                $(this).addClass('over');
            },
            onDragLeave: function () {
                $(this).removeClass('over');

            },
            onDrop: function (e, source) {
                $(this).removeClass('over');
                if ($(source).hasClass('clear')) {
                    $(this).empty();
                }
                else
                    if ($(source).hasClass('assigned')) {
                        $(this).append(source);
                    } else {
                        var c = $(source).clone().addClass('assigned');
                        $(this).append(c);
                        c.draggable({
                            revert: true
                        });
                    }
            }
        });

       $('#dateBegin').datebox({
                formatter: function (date) {
                    var y = date.getFullYear();
                    var m = date.getMonth() + 1;
                    var d = date.getDate();
                    return y + '年' + m + '月' + d + '日';
                }
            }
        );
        $('#dateEnd').datebox({
            formatter: function (date) {
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                var d = date.getDate();
                return y + '年' + m + '月' + d + '日';
            }
        }
        );


        var db = new Date();

// $('#dateBegin').val(db.toLocaleDateString());
$('#dateBegin').datebox('setValue', db.toLocaleDateString());
db.setDate(db.getDate() + 6);
$('#dateEnd').datebox('setValue', db.toLocaleDateString());

    });
</script>