Javascript 动态生成的select中的值为“未定义”

Javascript 动态生成的select中的值为“未定义”,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个动态生成新行的表,我需要从动态生成的selectbox中获取值。但我得到的只是“未定义”。如果我尝试从dynamic中获取值,那么一切都会正常工作。问题在于selectbox 下面是我从用户那里获取值的代码 $("#myTable tr").each(function(index, element){ if(index === 0){ // skip the table head return true; }

我有一个动态生成新行的表,我需要从动态生成的selectbox中获取值。但我得到的只是“未定义”。如果我尝试从dynamic中获取值,那么一切都会正常工作。问题在于selectbox

下面是我从用户那里获取值的代码

$("#myTable tr").each(function(index, element){
        if(index === 0){            // skip the table head
            return true;
        }
        var option = $(element).find("#course option:selected");
        if(option.val() == "-1"){        // should skip empty row but doesn't work either
            return true;
        }
        $(element).children().each(function(index, element){
            if(index === 0){
                activities[activities.length] = $(element).find("input").val();
            }else if(index === 1){
                activityIds[activityIds.length] = option.val();
                activityType[activityType.length] = option.attr("type");
            }
        });
    });
JSFIDLE

谢谢你的帮助

试试这样的方法

改变这个

试试这样的

改变这个

试试这样的

改变这个

试试这样的

改变这个

试试这个

activityIds[activityIds.length] = $(element).find('select').val();
activityType[activityType.length] =  $(element).find('input').attr("type");
试试这个

activityIds[activityIds.length] = $(element).find('select').val();
activityType[activityType.length] =  $(element).find('input').attr("type");
试试这个

activityIds[activityIds.length] = $(element).find('select').val();
activityType[activityType.length] =  $(element).find('input').attr("type");
试试这个

activityIds[activityIds.length] = $(element).find('select').val();
activityType[activityType.length] =  $(element).find('input').attr("type");

在addNewActivityRow函数中,您没有为选择框提供课程id。实际上,在这种情况下,您不应该使用id,而应该使用类,因为页面的id必须是唯一的。更改以下行:

var option = $(element).find("#course option:selected");
致:


这是可行的,但最好从元素中删除所有id。如果在addNewActivityRow函数中要有多个id实例,则不会给选择框提供课程id。实际上,在这种情况下,您不应该使用id,而应该使用类,因为id对于页面必须是唯一的。更改以下行:

var option = $(element).find("#course option:selected");
致:


这是可行的,但最好从元素中删除所有id。如果在addNewActivityRow函数中要有多个id实例,则不会给选择框提供课程id。实际上,在这种情况下,您不应该使用id,而应该使用类,因为id对于页面必须是唯一的。更改以下行:

var option = $(element).find("#course option:selected");
致:


这是可行的,但最好从元素中删除所有id。如果在addNewActivityRow函数中要有多个id实例,则不会给选择框提供课程id。实际上,在这种情况下,您不应该使用id,而应该使用类,因为id对于页面必须是唯一的。更改以下行:

var option = $(element).find("#course option:selected");
致:


它也会起作用,但如果您要有多个ID实例,最好从元素中删除所有ID

谢谢,我没有注意到。。。我已将id更改为class,并编辑了addNewActivityRow以将selectbox添加到class中。当然,效果很好!谢谢,谢谢,我没注意到。。。我已将id更改为class,并编辑了addNewActivityRow以将selectbox添加到class中。当然,效果很好!谢谢,谢谢,我没注意到。。。我已将id更改为class,并编辑了addNewActivityRow以将selectbox添加到class中。当然,效果很好!谢谢,谢谢,我没注意到。。。我已将id更改为class,并编辑了addNewActivityRow以将selectbox添加到class中。当然,效果很好!谢谢