Php 如何使用jquery从动态表中获取输入类型的值

Php 如何使用jquery从动态表中获取输入类型的值,php,jquery,dynamic-tables,Php,Jquery,Dynamic Tables,我在电子商务网站工作 我的表从会话中获取值。 它看起来像: 在签出时,我想得到表中的所有值 为此,我使用了jquery 这是我的密码: <script> $('#chhk').on('click',function(e) { e.preventDefault(); alert('click'); var table = $("#tbl tbody");

我在电子商务网站工作

我的表从会话中获取值。 它看起来像:

在签出时,我想得到表中的所有值

为此,我使用了jquery

这是我的密码:

<script>
$('#chhk').on('click',function(e) {
                    e.preventDefault();
                    alert('click');
                var table = $("#tbl tbody");

                 table.find('tr').each(function (i, el) {
                    var $tds = $(this).find('td'),
                        product = $tds.eq(2).text(),
                        price = $tds.eq(3).text(),
                        quantity = $tds.eq(4).attr('value'),
                        total = $tds.eq(5).text();

                     alert('Row ' + (i + 1) + ':\nProduct: ' + product
                          + '\nPrice: ' + price
                           + '\nQuantity: ' + quantity
                          + '\nTotal: ' + total);
                });

            });
</script>

$('chhk')。在('click',函数(e){
e、 预防默认值();
警报(“点击”);
var表=$(“#待定”);
表.查找('tr')。每个(函数(i,el){
var$tds=$(this.find('td'),
product=$tds.eq(2).text(),
价格=$tds.eq(3).text(),
数量=$tds.eq(4).attr('value'),
总计=$tds.eq(5.text();
警报('行'+(i+1)+':\n产品:'+产品
+“\n价格:”+价格
+“\n数量:”+数量
+“\n总计:”+总计);
});
});
这里 “#chhk”是签出按钮id

“#tbl”是我的表id

我通过此脚本获得数量的空白值,因为它是输入字段

如有任何帮助,将不胜感激。

请尝试替换此:

                    quantity = $tds.eq(4).attr('value');
与:

As.attr('value')在开始时给出值,而.val()给出当前属性

更多信息:

尝试更换此:

                    quantity = $tds.eq(4).attr('value');
与:

As.attr('value')在开始时给出值,而.val()给出当前属性

更多信息:

我试着分开做,得到了预期的结果

$('#chhk').on('click',function(e) {
                e.preventDefault();
                alert('click');
            var table = $("#tbl tbody");

             table.find('tr').each(function (i, el) {
                var $tds = $(this).find('td'),
                    product = $tds.eq(2).text(),
                    price = $tds.eq(3).text(),
                    total = $tds.eq(5).text();
                    var qty = $(this).find('td input:first').val();

                 alert('Row ' + (i + 1) + ':\nProduct: ' + product
                      + '\nPrice: ' + price
                      + '\nTotal: ' + total
                      +'\n Qua:' + qty);
            });

        });

已经分别处理了数量

我试着分别处理,并得到了预期的结果

$('#chhk').on('click',function(e) {
                e.preventDefault();
                alert('click');
            var table = $("#tbl tbody");

             table.find('tr').each(function (i, el) {
                var $tds = $(this).find('td'),
                    product = $tds.eq(2).text(),
                    price = $tds.eq(3).text(),
                    total = $tds.eq(5).text();
                    var qty = $(this).find('td input:first').val();

                 alert('Row ' + (i + 1) + ':\nProduct: ' + product
                      + '\nPrice: ' + price
                      + '\nTotal: ' + total
                      +'\n Qua:' + qty);
            });

        });
已分别处理数量。

替换此:

 quantity = $tds.eq(4).attr('value'),

替换此项:

 quantity = $tds.eq(4).attr('value'),


我以前尝试过这个方法,但是没有定义数量。请检查我下面的答案,让我知道我是否可以将数量脚本与.eq语法一起使用。似乎值在输入标记中,而不是通过.eq语法获得的td标记中。这意味着您必须从td标记中取出输入标记<代码>数量=$tds.eq(4).children(“input”).val()可能有效。正如我前面提到的,它是动态表,所以输入类型必须是tdTry
quantity=$tds.eq(4).children(“input”).val()如果您想保留.eq语法。我以前尝试过,但数量未定义。请检查我下面的答案,并告诉我是否可以将数量脚本与.eq语法一起使用。eq syntax的值似乎在输入标记中,而不是通过.eq语法获得的td标记中。这意味着您必须从td标记中取出输入标记<代码>数量=$tds.eq(4).children(“input”).val()可能有效。正如我前面提到的,它是动态表,所以输入类型必须是tdTry
quantity=$tds.eq(4).children(“input”).val()如果要保留.eq语法。