我是新手想问问下面代码在动态添加行后,假如添加10行。点击删除按钮删第7行, 
循环取值的时候只能取到删除行前面6行的值,而删除行后面3行的值就取不了,怎样才能取到删除行后面的值 
<SCRIPT > 
var rowname = new Array(99); 
var rowtype = new Array(99); 
var newrow  = new Array(99); 
var rowsize = new Array(99); for (i = 0; i < 99; i++) { 
rowname[i] = ''; 
rowtype[i] = ''; 
newrow[i] = ''; 
rowsize[i] = '25'; 
} var field_counter_js = 0; 
var loaded = 0; 
var is_streaming_progress_bar = 0; 
var temp_streaming_text = ""; var addRowTo = (function() { 
    return (function (tableId) { 
var d, tbody, tr, td, bgc, i, ii, j; 
d = document; 
tbody = d.getElementById(tableId).getElementsByTagName("tbody").item(0); tr = d.createElement("tr"); 
totalrows++; 
for (i = 0; i < field_counter_js; i++) { 
        td = d.createElement("td"); 
if(rowtype[i] == 'textbox') { 
td.innerHTML=" <INPUT type='hidden' value='" + totalrows +"' name='" + rowname[i] + "_row-" + totalrows + "' id='" + rowname[i] + "_row-" + totalrows + "'> </input> <input size='" + rowsize[i] + "' name='" + rowname[i] + totalrows + "' id='" + rowname[i] + totalrows + "'> </input> "; 
} tr.appendChild(td); 

td = d.createElement("td"); td.innerHTML = ' <input type="image" src="t/icon_x.gif" onclick="removeRow(this); return false;" value="Delete">'; 
tr.appendChild(td); 
tbody.appendChild(tr); 
}); })(); function removeRow(el) { 
    var cel; 
    while (el && el.nodeName.toLowerCase() != "tr") 
    el = el.parentNode;     if (el && el.parentNode) { 
cel = el.getElementsByTagName("td").item(0); 
el.parentNode.removeChild(el); 
    } 

</SCRIPT> 
</head> 
<SCRIPT type=text/javascript> 
rowname[0] = "address"; 
rowtype[0] = "textbox"; 
rowsize[0] = "30"; rowname[1] = "address_subnet"; 
rowtype[1] = "select"; 
rowsize[1] = "1"; rowname[2] = "detail"; 
rowtype[2] = "textbox"; 
rowsize[2] = "30"; 
</SCRIPT> <body LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0> 
<table width="580" border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse"> 
<tr> 
<td> 
  <form id="selectstore3" name="selectstore3" method="post"  action=""> 
  </form> 
          <table width="100%"  border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#CCCCCC" style="border-collapse:collapse "> 
            <tr> 
              <td width="60" valign="top" bgcolor="#eeeeee">款号: </td> 
              <td width="494"> <table id=123> 
                  <tbody> 
                    <tr> 
                      <td> <input id=address size=30 type="" value="" name=address > </span> </td> 
                      <td> </td> 
                      <td> <input id=detail size=30 value="" name=detail >                      </td> 
                      <td> <input id=asd name=asd type="image" src="t/icon_plus.gif" onClick="javascript:addRowTo(123);  return false;" value="add"> </td> 
                    </tr> 
                  </tbody> 
              </table> </td> 
            </tr> <tr> 
              <td bgcolor="#eeeeee">&nbsp; </td> 
              <td> <input name="button"  type=button  onClick="changeAction('icsoft_cuxiao_ceshi2.asp')"  value="保存"> 
                &nbsp;&nbsp; 
                <input type="reset" name="Submit" value="重新填写"> </td> 
            </tr> 
          </table> 
          <br> </td> 
  </tr> 
  
  </table> 
<SCRIPT type=text/javascript> 
field_counter_js = 3; 
rows = 1; 
totalrows = 0; 
loaded = 18; </SCRIPT>

解决方案 »

  1.   

    代码就懒得给你写了。说说思路吧:
    1、利用数组来实现你的功能:建立一个数组 var arr = [];
    2、你动态添加行的时候就向这个数组里面压栈arr.push(obj);//注意要和你的行号保持一致
    3、当你点击删除行的按钮的时候,触发事件,把当前的行号当做参数传入这个事件函数中。在数组arr中删除掉对应的行号对应的数据,剩下的就是你要的。你当然可以循环出来。
    ---- 思路,就是用一个事先准备好的数组来存放你添加的所有行,删除的时候,在这个数组中删除对应行号的数组元素,遍历这个数组就OK了,不用去再遍历DOM树,那么多费劲,而且效率低。---
    --- 如果可以,给分 ---
      

  2.   

    develop_design_level
     
    (develop_design_) 思路可以是可以,能不能帮我写下代码啊
      

  3.   

    1.遍历input取值
    2.得到table对象,可以定位到行号,就不会丢失后3行
    下面给个1的实现<SCRIPT >
        var rowname = new Array(99);
        var rowtype = new Array(99);
        var newrow  = new Array(99);
        var rowsize = new Array(99);    for (i = 0; i < 99; i++) {
            rowname[i] = '';
            rowtype[i] = '';
            newrow[i] = '';
            rowsize[i] = '25';
        }    var field_counter_js = 0;
        var loaded = 0;
        var is_streaming_progress_bar = 0;
        var temp_streaming_text = "";    var addRowTo = (function() {
            return (function (tableId) {
                var d, tbody, tr, td, bgc, i, ii, j;
                d = document;
                tbody = d.getElementById(tableId).getElementsByTagName("tbody").item(0);            tr = d.createElement("tr");
                totalrows++;
                for (i = 0; i < field_counter_js; i++) {
                    td = d.createElement("td");
                    if(rowtype[i] == 'textbox') {
                        td.innerHTML=" <INPUT type='hidden' value='" + totalrows +"' name='" + rowname[i] + "_row-" + totalrows + "' id='" + rowname[i] + "_row-" + totalrows + "'> </input> <input size='" + rowsize[i] + "' name='" + rowname[i] + totalrows + "' id='" + rowname[i] + totalrows + "'> </input> ";
                    }                tr.appendChild(td);
                }
                td = d.createElement("td");            td.innerHTML = ' <input type="image" src="t/icon_x.gif" onclick="removeRow(this); return false;" value="Delete">';
                tr.appendChild(td);
                tbody.appendChild(tr);
            });    })();    function removeRow(el) {
            var cel;
            while (el && el.nodeName.toLowerCase() != "tr")
                el = el.parentNode;        if (el && el.parentNode) {
                cel = el.getElementsByTagName("td").item(0);
                el.parentNode.removeChild(el);
            }
        }
        function getValue(){
            var input=document.getElementsByTagName("input");
            for(var i=0;i<input.length;i++){
                if(input[i].type=="text"){
                    alert(input[i].value)
                }
            }
        }
    </SCRIPT>
    </head>
    <SCRIPT type=text/javascript>
            rowname[0] = "address";
            rowtype[0] = "textbox";
            rowsize[0] = "30";        rowname[1] = "address_subnet";
            rowtype[1] = "select";
            rowsize[1] = "1";        rowname[2] = "detail";
            rowtype[2] = "textbox";
            rowsize[2] = "30";
    </SCRIPT><body LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
            <table id="tb" width="580" border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse">
            <tr>
            <td>
            <form id="selectstore3" name="selectstore3" method="post"  action="">
            </form>
            <table width="100%"  border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#CCCCCC" style="border-collapse:collapse ">
            <tr>
            <td width="60" valign="top" bgcolor="#eeeeee">款号: </td>
            <td width="494"> <table id=123>
            <tbody>
            <tr>
            <td> <input id=address size=30 type="" value="" name=address > </span> </td>
            <td> </td>
            <td> <input id=detail size=30 value="" name=detail >                      </td>
            <td> <input id=asd name=asd type="image" src="t/icon_plus.gif" onClick="javascript:addRowTo(123);  return false;" value="add"> </td>
            </tr>
            </tbody>
            </table> </td>
            </tr> <tr>
            <td bgcolor="#eeeeee">&nbsp; </td>
            <td> <input name="button"  type=button  onClick="changeAction('icsoft_cuxiao_ceshi2.asp')"  value="保存">
            &nbsp;&nbsp;
            <input type="reset" name="Submit" value="重新填写"> </td>
            </tr>
            </table>
            <br> </td>
            </tr>        </table>
            <SCRIPT type=text/javascript>
            field_counter_js = 3;
        rows = 1;
        totalrows = 0;
        loaded = 18;</SCRIPT>
    <input type="button" value="取值" onclick="getValue()">
      

  4.   

    呵呵 你的工资我替你拿么?(呵呵,开个玩笑。代码要自己写,可能你的BOSS在催你,你也要顶回去。多写,你的js越写越牛)