请教各位一个 js 动态生成生成行后上下移行的问题 O(∩_∩)O谢谢

JavaAlpha 2009-09-09 08:39:20
动态生成行的input里面有个鼠标单击事件,我想上移或下移后事件跟随移动的行一起改变到移动的位置。
昨天研究了很长时间,思路都没有通过。谁给个好的方法呢 ??O(∩_∩)O谢谢。别人贴的代码怎么都带个规矩的代码格式呢?我的怎么没有呢?

这个是上移行的代码:
//上移行
function upTableRow(rowNum)
{
if(parseInt(rowNum,10)==1)
{
alert("已经是第一行,不能执行上移操作!");
return;
}
var rowUp;//上一行临时对象
var rowDn;//下一行临时对象(要移动行)
var temp="";//临时变量
var rows = table1.rows;
var cells = rows[rowNum].cells;
//更改移动的上下两行值(更改行内容)
//类型
rowUp=eval("div_"+(parseInt(rowNum,10)-1));
rowDn=eval("div_"+rowNum);
temp=rowUp.innerHTML;
rowUp.innerHTML=rowDn.innerHTML;
rowDn.innerHTML=temp;

rowUp=eval("document.form1.type"+(parseInt(rowNum,10)-1));
rowDn=eval("document.form1.type"+rowNum);
temp=rowUp.value;
rowUp.value=rowDn.value;
rowDn.value=temp;
//内容
rowUp=eval("document.form1.input"+(parseInt(rowNum,10)-1));
rowDn=eval("document.form1.input"+rowNum);
temp=rowUp.value;
rowUp.value=rowDn.value;
rowDn.value=temp;
rowUp=document.creareElement("<input type='text' name='input"+(parseInt(rowNum,10)-1)+"' size='30' onclick='insertTest(\""+(parseInt(rowNum,10)-1)+"\",this)' readonly>");
//table1.rows[rowNum].cells[1].outerHTML="<td height='20' bgcolor='#FFFFFF' class='STYLE19'><input type='text' name='input"+(parseInt(rowNum,10)-1)+"' size='30' onclick='insertTest(\""+(parseInt(rowNum,10)-1)+"\",this)' readonly></td>";

//时间
rowUp=eval("document.form1.time"+(parseInt(rowNum,10)-1));
rowDn=eval("document.form1.time"+rowNum);
temp=rowUp.value;
rowUp.value=rowDn.value;
rowDn.value=temp;

//大小
rowUp=eval("document.form1.size"+(parseInt(rowNum,10)-1));
rowDn=eval("document.form1.size"+rowNum);
temp=rowUp.value;
rowUp.value=rowDn.value;
rowDn.value=temp;
}
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
JavaAlpha 2009-09-12
  • 打赏
  • 举报
回复
解决了 谢谢 各位
BeenZ 2009-09-09
  • 打赏
  • 举报
回复
忘记加下移动了

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
<script language="javascript">
var id=1;
function addInput(){
var div=document.getElementById("inputDiv")
var input="<div id=div"+id+"><input type=text >"+id+"<input type=button onclick=addInput() value=\"+\"><input id=a_"+id+" type=button value=\"上移\" onclick=gotop(this.id)><input id=b_"+id+" type=button value=\"下移\" onclick=gobtom(this.id)></br></div>"
id++;
div.innerHTML+=input;
}
function gotop(rid){
if(rid=="a_0") return
var div=document.getElementById("inputDiv");
var divid=rid.split("_")[1];
var deldiv=document.getElementById("div"+divid);
var nextrow=parseInt(divid)-1;
deldiv.childNodes[3].id="a_"+nextrow;
var innerhtml=deldiv.innerHTML;
var firstdiv=document.createElement("div");
firstdiv.innerHTML=innerhtml;
firstdiv.id="div"+nextrow;
var nextdiv=document.getElementById("div"+nextrow);
nextdiv.childNodes[3].id="a_"+divid;
div.removeChild(deldiv);
div.childNodes[nextrow].id="div"+divid;
div.insertBefore(firstdiv,div.childNodes[nextrow]);
}
function gobtom(rid){
var div=document.getElementById("inputDiv");
var divid=rid.split("_")[1];
divid=parseInt(divid)+1
if(divid==id) return;
var deldiv=document.getElementById("div"+divid);
var nextrow=parseInt(divid)-1;
deldiv.childNodes[4].id="b_"+nextrow;
var innerhtml=deldiv.innerHTML;
var firstdiv=document.createElement("div");
firstdiv.innerHTML=innerhtml;
firstdiv.id="div"+nextrow;
var nextdiv=document.getElementById("div"+nextrow);
nextdiv.childNodes[4].id="b_"+divid;
div.removeChild(deldiv);
div.childNodes[nextrow].id="div"+divid;
div.insertBefore(firstdiv,div.childNodes[nextrow]);
}

window.onload=function(){

}


</script>
</head>
<body>
<div id="inputDiv"><div id=div0><input type="text" ID="Text1" NAME="Text1"/>0<input type="button" onclick="addInput()" value="+" ID="Button1" NAME="Button1"><input id=a_0 type=button value="上移" onclick=gotop(this.id) NAME=a_0><input id=b_0 type=button value="下移" onclick=gobtom(this.id) NAME="b_0"></br></div></div>
<div></div>
</body>
</html>
chinabh 2009-09-09
  • 打赏
  • 举报
回复
BeenZ 2009-09-09
  • 打赏
  • 举报
回复

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
<script language="javascript">
var id=1;
function addInput(){
var div=document.getElementById("inputDiv")
var input="<div id=div"+id+"><input type=text >"+id+"<input type=button onclick=addInput() value=\"+\"><input id=a_"+id+" type=button value=\"上移\" onclick=gotop(this.id)><input id=b_"+id+" type=button value=\"下移\" onclick=gobtom(this.id)></br></div>"
id++;
div.innerHTML+=input;
}
function gotop(rid){
if(rid=="a_0") return
var div=document.getElementById("inputDiv");
var divid=rid.split("_")[1];
var deldiv=document.getElementById("div"+divid);
var nextrow=parseInt(divid)-1;
deldiv.childNodes[3].id="a_"+nextrow;
var innerhtml=deldiv.innerHTML;
var firstdiv=document.createElement("div");
firstdiv.innerHTML=innerhtml;
firstdiv.id="div"+nextrow;
var nextdiv=document.getElementById("div"+nextrow);
nextdiv.childNodes[3].id="a_"+divid;
div.removeChild(deldiv);
div.childNodes[nextrow].id="div"+divid;
div.insertBefore(firstdiv,div.childNodes[nextrow]);
}

window.onload=function(){

}


</script>
</head>
<body>
<div id="inputDiv"><div id=div0><input type="text" ID="Text1" NAME="Text1"/>0<input type="button" onclick="addInput()" value="+" ID="Button1" NAME="Button1"><input id=a_0 type=button value="上移" onclick=gotop(this.id) NAME=a_0><input id=b_0 type=button value="下移" onclick=gobtom(this.id) NAME="b_0"></br></div></div>
<div></div>
</body>
</html>
sd5816690 2009-09-09
  • 打赏
  • 举报
回复
<table>
<tr>
<td><input value="1" /></td>
<td>
<input type="button" style="width:30px;" value="∧" onclick="move(this, -1)" />
<input type="button" style="width:30px;" value="∨" onclick="move(this, 2)" />
</td>
</tr>
<tr>
<td><input value="2" /></td>
<td>
<input type="button" style="width:30px;" value="∧" onclick="move(this, -1)" />
<input type="button" style="width:30px;" value="∨" onclick="move(this, 2)" />
</td>
</tr>
<tr>
<td><input value="3" /></td>
<td>
<input type="button" style="width:30px;" value="∧" onclick="move(this, -1)" />
<input type="button" style="width:30px;" value="∨" onclick="move(this, 2)" />
</td>
</tr>
</table>

<script>
function move(input, step){
var tr = input.parentNode.parentNode;
var tbody = tr.parentNode;
var table = tbody.parentNode;
var index = tr.rowIndex + step;

if(index < 0 || index > table.rows.length){
alert("越界");
return false;
}else if(index == table.rows.length){
tbody.appendChild(tr);
}else{
tbody.insertBefore(tr, table.rows[index]);
}
}
</script>

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧