JS动态生成了一个表table1,表的行数未知,表第二列都有一个文本框
希望实现点提交按钮循环得到每个文本框的值

解决方案 »

  1.   

    设置这些input的class相同
    点击提交时用$("#table1 .inputclass")获取到的就是一个数组
      

  2.   

    <!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=utf-8" />
        <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
        <title>无标题文档</title>
    </head>
    <body>
        <form>
        <table>
            <tr>
                <td>
                    11
                </td>
                <td>
                    <input type="text" name="txtName" />
                </td>
            </tr>
            <tr>
                <td>
                    11
                </td>
                <td>
                    <input type="text" name="txtName" />
                </td>
            </tr>
            <tr>
                <td>
                    11
                </td>
                <td>
                    <input type="text" name="txtName" />
                </td>
            </tr>
            <tr>
                <td>
                    11
                </td>
                <td>
                    <input type="text" name="txtName" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" onclick="doSubmit()" value="Submit" />
                </td>
            </tr>
        </table>
        </form>
        <script>
            function doSubmit() {
                var a = $("form").serializeArray();
                alert(a);
            }
        </script>
    </body>
    </html>
      

  3.   

    或者   <script>
            function doSubmit() {            $("table tr").each(function () {
                    var name = $(this).find("td:nth-child(2) input").val();
                    alert(name);
                })
            }
        </script>
      

  4.   

    var arr = [];
    $('#table1').find('tr').each(function() {
        arr.push($(this).find('td').eq(1).find('input').val());
    });
      

  5.   


    能不能一个个的得到值呢?
          $("#table1 .inputclass").each(function () {
                var value = $(this).val();
            })
      

  6.   


    测试没有效果啊<!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=utf-8" />
        <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
        <title>无标题文档</title>
    </head>
    <body>
        <form>
        <table>
            <tr>
                <td>
                    11
                </td>
                <td>
                    <input type="text" name="txtName" />
                </td>
            </tr>
            <tr>
                <td>
                    11
                </td>
                <td>
                    <input type="text" name="txtName" />
                </td>
            </tr>
            <tr>
                <td>
                    11
                </td>
                <td>
                    <input type="text" name="txtName" />
                </td>
            </tr>
            <tr>
                <td>
                  
                </td>
                <td>
                    <input type="text" name="txtName" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" onclick="doSubmit()" value="Submit" />
                </td>
            </tr>
        </table>
        </form>
       <script>
           function doSubmit() {
               var result = "";
               $("table tr").each(function (i) {
                   var name = $(this).find("td:nth-child(2) input").val();
                   if (name == undefined) return;
                   result += "第" + i + "行文本框值:" + name + " <br />";
               })
               $("body").append(result);
           }
        </script>
    </body>
    </html>不可能没效果啊
      

  7.   

    只要把 table 放在  <form> 下
      表第二列  每个一个文本框 <input name="name1">  
       的name 设置与一样的表单自动会拼在一起提交,要独立提交,就取不一样的名字
    根本都不概要 JS 参与处理
      

  8.   

    只要把 table 放在  <form> 下
      表第二列  每个一个文本框 <input name="name1">  
       的name 设置与一样的表单自动会拼在一起提交,要独立提交,就取不一样的名字
    根本都不概要 JS 参与处理我不是要提交表单啊,我是要打印出每个值做其他用
      

  9.   


    你是把我的代码加进去你的项目里面了? 还是完全复制的我的代码?如果是完全复制我的代码要保证有
    <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script> 这个文件,
    上面的几种只是方式, 根据你的要求,最好的就是给文本框取个name,就根据这个name获取就好,
      $("table tr").each(function (i) { 这种 方式比较适用于,获取一个tr下面多个TD里面的值的时候才这么去遍历。  
      

  10.   

    是这意思? <input type="text" name="txtName" value="1"  />
    <input type="text" name="txtName" value="2" />
     <input type="text" name="txtName" value="3"  />
    <script>
     var els=document.getElementsByName('txtName')
     var vs=[];
     for(var i=0;i<els.length;i++)vs.push( els[i].value);
     alert(  vs  )
     </script>
      

  11.   

        var tb = document.getElementById('table1'),input
        for (var i = 0, j = tb.rows.length; i < j; i++) {
            input = tb.rows[i].cells[1].getElementsByTagName('input'); [0]
            if (input) alert(input.value);
         }
      

  12.   


    学习了,原来JS还可以这样写tb.rows[i].cells[1].getElementsByTagName('input'); [0] 这句,问下楼主,后面这个[0] 就表示匹配第一个input 是吧。
      

  13.   

    cells[0].getElementsByTagName("input")[1] 刚理解了下,后面这个[1] 指是当前这个td里面的 第几个input 这个就是td里面的第二个input.
      

  14.   


    这个语法是不是有错,为什么我测试没有进循环呢?可以的啊,我刚都测试了下,我也是没见过这样的语法
    <!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=utf-8" />
        <title>无标题文档</title>
    </head>
    <body>
        <table id="tb1">
            <tr>
                <td>
                    <input name="txtOne" value="1" /><input value="1111" />
                </td>
                <td>
                    <input name="txtTwo" value="2" />
                </td>
            </tr>
            <tr>
                <td>
                    <input name="txtOne" value="11" /><input value="3333" />
                </td>
                <td>
                    <input name="txtTwo" value="22" />
                </td>
            </tr>
            <tr>
                <td>
                    <input name="txtOne" value="111" />
                </td>
                <td>
                    <input name="txtTwo" value="222" />
                </td>
            </tr>
        </table>
        <input type="button" onclick="doSubmit()" />
        <script>
            var tb = document.getElementById("tb1");
            for (var i = 0; i < tb.rows.length; i++) {
                var value = tb.rows[i].cells[0].getElementsByTagName("input")[1];
                if (value != undefined)
                    alert(value.value);
            }
        </script>
    </body>
    </html>
      

  15.   


    <table id="table1">
    <tr><td>1</td><td><input type="text" value="1" /></td></tr>
    <tr><td>1</td><td><input type="text" value="2" /></td></tr>
    <tr><td>1</td><td><input type="text" value="3" /></td></tr>
    <tr><td>1</td><td><input type="text" value="4" /></td></tr>
    <tr><td>1</td><td><input type="text" value="5" /></td></tr>
    <tr><td>1</td><td><input type="text" value="6" /></td></tr>
    </table>
    <script>
        window.onload = function () {
            var tb = document.getElementById('table1'), input//注意你table的id
            for (var i = 0, j = tb.rows.length; i < j; i++) {
                input = tb.rows[i].cells[1].getElementsByTagName('input')[0];//上面贴出来的代码分号放错位置了
                if (input) alert(input.value);
            }
        }
    </script>
      

  16.   

    tb.rows[i].cells[0].getElementsByTagName("input")[1];
    把这一句仔细想了想也是对的, rows[i].cells[0] 里面找 input ,返回来的就是一个数组,[1]是取数组的下标了,只是一时间没想过来。