js或者jquery如何实现拖拽表格单元格内容交换

JavaScript013

js或者jquery如何实现拖拽表格单元格内容交换,第1张

<script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>

<style>

td.hover{border:dotted 3px #f00 }

td.selected{background:#f00color:#fff}

td.disabled{background:#eeecolor:#000}

#tdMove{position:absolutedisplay:noneborder:dotted 3px #f00background:#fff}

table{user-select:none-moz-user-select:none}</style>

<table border="1">

<script>

var s = ''

for (var i = 0i <10i++) {

s += '<tr>'

for (var j = 0j <10j++) s += '<td' + (Math.random() >0.8 ? ' class="disabled"' : '') + '>' + i + '-' + j + '</td>'

s += '</tr>'

}

document.write(s)

</script>

</table>

<div id="tdMove"></div>

<script>

var tdMove = $('#tdMove'),px=5//浮动块偏移量,不偏移鼠标移动过程会出现在这个div移动的情况,移动到td上无法响应高亮样式

$('td:not(.disabled)').mousedown(function (e) {

this.className = 'selected'

tdMove.html(this.innerHTML).css({ left: e.clientX + px, top: e.clientY + px }).show()

$(document).mousemove(function (e) {

var el = e.target

tdMove.css({ left: e.clientX + px, top: e.clientY + px })

if (el.tagName == 'TD' &&el.className != 'disabled' &&el.className != 'selected') {

$('td').removeClass('hover')el.className = 'hover'

}

}).mouseup(function () {

$(document).unbind()

tdMove.hide()

var td = $('td.hover,td.selected')

if (td.length == 2) {

var s = td[1].innerHTML

td[1].innerHTML = td[0].innerHTML

td[0].innerHTML = s

}

td.removeClass('hover selected')

})

})

</script>

在页面中换行需要使用br标签或通过其他块级元素、css规则等方式实现:

1.br标签

<span>123<br />456<span>

2.块级元素(输出的html代码可以是一行,显示出来会出现3行)

<div>第一行</div><div>第二行</div><div>第三行</div>

3.pre标签(生成html代码必须包含所有的格式,如换行符\n等,会按照源代码的格式显示)

<pre>

第1行

第2行

第3行

</pre>