var array = new Array();
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档 </title>
<script language="javascript">
var cc = null;
var sr;
function jos(ss)
{
mm = ss;
var array = new Array();
var i,j;
var trs = ss.childNodes[0].childNodes;
var list_items = function(o)
{
items = o;
items.onmouseup=function()
{
if(cc && this != cc)
{
cc.innerHTML = this.innerHTML;
alert(cc.innerHTML);
this.innerHTML = sr;
}
cc = null;
}
items.onmousedown=function()
{
cc = this;
sr = this.innerHTML;
}
}
var k = 0;
for(i=0;i <trs.length;i++)
{
for(j=0;j<trs[i].childNodes.length;j++)
{
array[k] = trs[i].childNodes[j].innerHTML;
k++;
}
}
ss.removeChild(ss.childNodes[0]);
/////将所有节点全部复制保存在数组里
/////这里将使用数学方法
var tbody = document.createElement("tbody");
var line;
for(i=0;i<k;i++)
{
if(i%3==0 && i != k-1)
{
line = document.createElement("tr");
tbody.appendChild(line);
}
var it = document.createElement("td");
it.innerHTML = array[i];
line.appendChild(it);
list_items(it);
}
ss.appendChild(tbody);
}
</script>
</head>
<body>
<table width="500" border="1" align="center" onmouseover="jos(this)">
<tr>
<td>mm1 </td>
<td>mm2 </td>
<td>mm3 </td>
</tr>
<tr>
<td>mm4 </td>
<td>mm5 </td>
<td>mm6 </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档 </title>
<script language="javascript">
var cc = null;
var sr;
function jos(ss)
{
mm = ss;
var array = new Array();
var i,j;
var trs = ss.childNodes[0].childNodes;
var list_items = function(o)
{
items = o;
items.onmouseup=function()
{
if(cc && this != cc)
{
cc.innerHTML = this.innerHTML;
alert(cc.innerHTML);
this.innerHTML = sr;
}
cc = null;
}
items.onmousedown=function()
{
cc = this;
sr = this.innerHTML;
}
}
var k = 0;
for(i=0;i <trs.length;i++)
{
for(j=0;j<trs[i].childNodes.length;j++)
{
array[k] = trs[i].childNodes[j].innerHTML;
k++;
}
}
ss.removeChild(ss.childNodes[0]);
/////将所有节点全部复制保存在数组里
/////这里将使用数学方法
var tbody = document.createElement("tbody");
var line;
for(i=0;i<k;i++)
{
if(i%3==0 && i != k-1)
{
line = document.createElement("tr");
tbody.appendChild(line);
}
var it = document.createElement("td");
it.innerHTML = array[i];
line.appendChild(it);
list_items(it);
}
ss.appendChild(tbody);
}
</script>
</head>
<body>
<table width="500" border="1" align="center" onmouseover="jos(this)">
<tr>
<td>mm1 </td>
<td>mm2 </td>
<td>mm3 </td>
</tr>
<tr>
<td>mm4 </td>
<td>mm5 </td>
<td>mm6 </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档 </title>
<script language="javascript">
var cc = null;
var sr;
var n=-1,m=-1;
function jos(ss)
{
mm = ss;
var array = new Array();
var i,j;
var trs = ss.childNodes[0].childNodes;
var list_items = function(o)
{
items = o;
items.onmouseup=function()
{
if(cc && this != cc)
{
var tb = this.parentNode.parentNode.parentNode;
tb.rows[m].cells[n].innerHTML = this.innerHTML;
cc.innerHTML = this.innerHTML;
alert(cc.innerHTML);
this.innerHTML = sr;
}
cc = null;
m = n = -1
}
items.onmousedown=function()
{
cc = this;
m = this.parentNode.rowIndex;
n = this.cellIndex;
sr = this.innerHTML;
}
} var k = 0;
for(i=0;i <trs.length;i++)
{
for(j=0;j<trs[i].childNodes.length;j++)
{
array[k] = trs[i].childNodes[j].innerHTML;
k++;
}
}
ss.removeChild(ss.childNodes[0]);
/////将所有节点全部复制保存在数组里
/////这里将使用数学方法
var tbody = document.createElement("tbody");
var line;
for(i=0;i<k;i++)
{
if(i%3==0 && i != k-1)
{
line = document.createElement("tr");
tbody.appendChild(line);
}
var it = document.createElement("td");
it.innerHTML = array[i];
line.appendChild(it);
list_items(it);
}
ss.appendChild(tbody);
}</script>
</head>
<body>
<table width="500" border="1" align="center" onmouseover="jos(this)">
<tr>
<td>mm1 </td>
<td>mm2 </td>
<td>mm3 </td>
</tr>
<tr>
<td>mm4 </td>
<td>mm5 </td>
<td>mm6 </td>
</tr>
</table>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>右键拖动交换</title>
<script language="javascript">
var oSrcNode=null;function MouseDown(e){
var evt=e||event;
var srcEl=evt.target||evt.srcElement;
if(srcEl && srcEl.tagName=="TD"){
oSrcNode=srcEl;
}
}function MouseUp(e){
var evt=e||event;
var srcEl=evt.target||evt.srcElement;
if(srcEl && oSrcNode && srcEl.tagName=="TD" && srcEl!=oSrcNode){
//交换内容
var strTemp=oSrcNode.innerHTML;
oSrcNode.innerHTML=srcEl.innerHTML;
srcEl.innerHTML=strTemp;
}
//注销选定对象和事件
oSrcNode=null;
window.onmousedown=null;
}
document.oncontextmenu=function(){
window.onmousedown=MouseDown;
return false;
}; window.onmouseup=MouseUp;</script>
</head>
<body>
<table width="500" border="1" align="center">
<tr>
<td>mm1 </td>
<td>mm2 </td>
<td>mm3 </td>
</tr>
<tr>
<td>mm4 </td>
<td>mm5 </td>
<td>mm6 </td>
</tr>
</table>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>右键拖动交换</title>
<style type="text/css"></style>
<script language="javascript">
var oSrcNode=null;function MouseDown(e){
var evt=e||event;
var srcEl=evt.target||evt.srcElement;
if(evt.button==2 && srcEl && srcEl.tagName=="TD"){
oSrcNode=srcEl;
}
}function MouseUp(e){
var evt=e||event;
var srcEl=evt.target||evt.srcElement;
if(oSrcNode && srcEl && srcEl.tagName=="TD" && srcEl!=oSrcNode){
//交换内容
var strTemp=oSrcNode.innerHTML;
oSrcNode.innerHTML=srcEl.innerHTML;
srcEl.innerHTML=strTemp;
}
//注销选定对象和事件
oSrcNode=null;
}document.oncontextmenu=function(){return false;};
document.onmousedown=MouseDown;
document.onmouseup=MouseUp;</script>
</head>
<body>
<table width="500" border="1" align="center">
<tr>
<td>mm1 </td>
<td>mm2 </td>
<td>mm3 </td>
</tr>
<tr>
<td>mm4 </td>
<td>mm5 </td>
<td>mm6 </td>
</tr>
</table>
</body>
</html>
alert(cc.innerHTML) 也显示正常 这是怎么回事,先还是希望有高人指点,本帖再加点分吧
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档 </title>
<script language="javascript">
var cc = null;
var sr;
function jos(ss)
{ mm = ss;
var array = new Array();
var i,j;
var trs = ss.childNodes[0].childNodes;
//alert(ss.childNodes[0])
var list_items = function(o)
{ items = o; items.onmouseup=function()
{ if(cc && this != cc)
{
cc.innerHTML = this.innerHTML;
this.innerHTML = sr; }
cc = null;
}
items.onmousedown=function() { cc = this; sr = this.innerHTML;} }
var k = 0;
for(i=0;i <trs.length;i++)
{ for(j=0;j<trs[i].childNodes.length;j++)
{ array[k] = trs[i].childNodes[j].innerHTML; k++; } }
//alert(ss.childNodes[0].nodeName)
ss.removeChild(ss.childNodes[0]);
/////将所有节点全部复制保存在数组里 /////这里将使用数学方法
var tbody = document.createElement("tbody");
var line; for(i=0;i<k;i++) { if(i%3==0 && i != k-1)
{ line = document.createElement("tr"); tbody.appendChild(line); }
var it = document.createElement("td");
it.innerHTML = array[i];
line.appendChild(it);
list_items(it); } ss.appendChild(tbody); }
</script>
</head>
<body onload="jos(document.getElementById('test'))">//-----------------------
<table id="test" width="500" border="1" align="center" >
<tr> <td>mm1 </td> <td>mm2 </td> <td>mm3 </td> </tr>
<tr> <td>mm4 </td> <td>mm5 </td> <td>mm6 </td> </tr>
</table>
</body>
</html>
这样就ok了
<head>
<title>
</title>
</head>
<body>
<table width="500" border="1" align="center" id="tblContainer" onmouseup="Rest(event)">
<tr>
<td>mm1 </td>
<td>mm2 </td>
<td>mm3 </td>
</tr>
<tr>
<td>mm4 </td>
<td>mm5 </td>
<td>mm6 </td>
</tr>
</table>
<input id="button" type="button" onclick="Reset()" value="还原" />
<script>var DragObject = null;
var ExchangeObject = null;
var tblContainer = document.getElementById("tblContainer");
var data = new Array(); //保存原数据
for(var i=0;i<tblContainer.rows.length;i++)
{
data[i] = new Array();
for(var j = 0; j< tblContainer.rows[i].cells.length; j++)
{
data[i][j] = tblContainer.rows[i].cells[j].innerHTML;
tblContainer.rows[i].cells[j].onmousedown = function()
{
DragObject = this;
}
}
}
function Rest(ev)
{
if(DragObject == null)
return; ev = ev || window.event;
var target = ev.target || ev.srcElement;
if(target)
ExchangeObject = target;
if(DragObject == ExchangeObject)
return;
else
{
temp = DragObject.innerHTML;
DragObject.innerHTML = ExchangeObject.innerHTML;
ExchangeObject.innerHTML = temp; }
DragObject = null;
ExchangeObject = null;
}
function Reset()
{
for(var i=0;i<tblContainer.rows.length;i++)
{
for(var j = 0; j< tblContainer.rows[i].cells.length; j++)
{
tblContainer.rows[i].cells[j].innerHTML = data[i][j];
}
}
}
</script>
</body>
</html>
第二个td内值的改变不能影响第一个td内的值,因为第一个td丢失了引用,只是复制了他的值