Javascript Jquery是否从动态生成的输入框中获取值?

Javascript Jquery是否从动态生成的输入框中获取值?,javascript,jquery,Javascript,Jquery,我想从tr标记中动态生成的inputbox中提取该值。但是由于某些原因,我面临着错误,并且我的值没有定义。我可能做错了什么?我对Jquery比较陌生。所以,我想知道我哪里做错了 index.js function dynamic_children() { $(function () { var no = $('#number_children').val() $('#id_children-TOTAL_FORMS').val = no

我想从tr标记中动态生成的inputbox中提取该值。但是由于某些原因,我面临着错误,并且我的值没有定义。我可能做错了什么?我对Jquery比较陌生。所以,我想知道我哪里做错了

index.js

       function dynamic_children() {
    $(function () {
        var no = $('#number_children').val()
        $('#id_children-TOTAL_FORMS').val = no

        children_added = $('#children_td_table tr').length
        remaining = 4 - children_added

        //determine if the no of children input are more than those left
        if (no > remaining) {
            //show alert that max children reached
            $('max-children').show()
            setTimeout(function () {
                $('max-children').hide()
            }, 3000);
        } else if (no < children_added) {

            no_to_remove = children_added - no
            for (i = 0; i < no_to_remove; i++) {
                $('#children_td_table').children().last().remove();
            }

        }
        else {
            for (var i = 0; i < remaining && i < no; i++) {
                no_ = i + 1
                $('#children_td_table')
                    .append($('<tr>')
                        .append('<td>' + no_ + '</td>')
                        .append($('<td>')
                            .append($('<input>')
                                .addClass('Input-text')
                                .attr('name', 'children-' + i + '-child_name')
                                .attr('id', 'children-' + i + '-child_name')

                            )



                        )
                        .append($('</td>'))
                        .append($('<td>')
                            .append($('<input>')
                                .addClass('Input-text')
                                .attr('name', 'children-' + i + '-child_dob')
                                .prop('type', 'date')
                                .prop('class', 'children-' + i + '-child_age')
                                .change(function () {
                                    d = new Date($(this).val());
                                    var before = moment($(d, 'YYYY-MM-DD'));
                                    var age = moment().diff(d, 'years');
                                    age_id_name = "#" + $(this).attr('class')
                                    $(age_id_name).val(age);
                                })
                            ))
                        .append($('</td>'))
                        .append($('<td>')
                            .append($('<input>')
                                .addClass('Input-text')
                                .attr('id', 'children-' + i + '-child_age')
                                .attr('name', 'child')
                                .prop('type', 'text')
                            ))
                        .append($('</td>'))
                    )
                    .append($('</tr>'))
            }

        }


        //
        // for (var i = 0; i < no && i < 4; i++) {
        //
        //
        //     $("#delete_row").click(function () {
        //         if (i > 1) {
        //             $("#addr" + (i - 1)).html('');
        //             i--;
        //         }
        //     });
        // }
    })
}
函数动态_子函数(){
$(函数(){
var no=$('#number_children').val()
$('#id#children-TOTAL#u FORMS')。val=no
children_added=$('#children_td_table tr')。长度
剩余=4-添加了子项
//确定子输入的数量是否大于剩余的数量
如果(否>剩余){
//显示已达到最大子级的警报
$('max-children').show()
setTimeout(函数(){
$('max-children').hide()
}, 3000);
}否则,如果(无1){
//$(“#addr”+(i-1)).html(“”);
//我--;
//         }
//     });
// }
})
}

函数savechildinfo(){ var numfochildren=$(“#number_children”).val(); console.log(“CHildrennumber”,numfochildren); var tr=$(“#子项#td_表”)。最近('tr');
对于(var i=0;i来说,很难理解和阅读您的代码,但我会在下面强调您的问题

首先,无需使用
最接近的
只需使用
$(“#children_td_table”)
单独用于
var tr
。其次,如果您想通过
ID
找到它,那么应该使用
var c=“#children-“+i+”-child\u name”

var i=1;
var no='123'//仅用于修复错误
$(“儿童”表)
.append($('')
.附加(“”+否+“”)
.append($('')
.append($('')
.addClass(“输入文本”)
.attr('name','children-'+i+'-childrename')
.attr('id','children-'+i+'-childrename')
.val('test')//稍后删除此项
))
.append(“”)
.append(“”)
);
savechildinfo();//我在加载时执行此操作
函数savechildinfo(){
var numochildren=2;//仅用于修复错误
console.log(“CHildrennumber”,numfochildren);
var tr=$(“#children#td_table”);
//删除最近的
for(var i=0;i


第4行中引用的
这个
在哪里?
var c=“children-”+i+“-children\u name”
这里缺少
ID
var c=“\children-”+i+“-children\u name”
@AjAX.:-仍然不工作。您正在-不-关闭
tr
td
。您的第一个生成表的函数工作正常吗?我的意思是,您是一直在生成动态表还是只在提取值?
function savechildinfo(){
    var numofchildren = $("#number_children").val();
    console.log("CHildrennumber",numofchildren);
    var tr = $("#children_td_table").closest('tr');



    for(var i =0;i<numofchildren;i++){
        var c = "children-"+i+"-child_name";
        var d = tr.find(c).val();

        console.log("childrenname",d);


    }
}