动态生成行的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;
}

解决方案 »

  1.   

    <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>
      

  2.   


    <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>
      

  3.   

    JS控制表格行的移动:http://js.bhcode.net/javascript/20090909/121.html
      

  4.   

    忘记加下移动了<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>