使用javascript动态生成文本框及其id

时间:2016-04-05 11:02:42

标签: javascript

我正在创建一个包含两列的dataTable。第一列包含一些名称列表,第二列包含针对每个名称的空文本框。这些文本框是动态创建的。我想动态地为每个文本框生成id。我尝试使用以下代码:

jQuery("#table_projection_value").dataTable({
                "sAjaxSource": "includes/inc-projection-db.php?mode=projection_dataTable",
                "bDestroy": true,
                "bPaginate": false,
                "bInfo": false,
                "bFilter": false,
                "bSort": false,
                "aoColumnDefs": [
                    {
                        "aTargets": [0],
                        "mRender": function(data, type, row) {
                            return data + '<input type="hidden" class="user_id" name="user_id[]" id="user_id" value="' + row[4] + '">';
                        }
                    },
                    {
                        "aTargets": [1],
                        "mRender": function(data, type, row) {
                            return '<input type="text" class="form-control text-right projected_value" name="projected_value[]" id="projected_value_' + row[4] + '_' + data + '" onchange="change();">';
                        }
                    }
                ]
            });
            jQuery("#table_projection_value").on("draw.dt", function(){
                jQuery("#projected_value").each(function(i, e){
                    //var controlid = "#" + jQuery(this).prop("id");
                    //alert(controlid);
                    //var arr = controlid.split("_");
                    $'<span></span>'),{
                        "class": "arr",
                        "id": "id_" + i 
                    }).appendTo(this);
                });
            });

但问题是,我得到每个文本框的id为undefined。那么,我该怎么做呢?我是新手。This is what I get as id for the text box.

1 个答案:

答案 0 :(得分:0)

你能确保第[4]行是有效值吗?

你的代码中有一些语法错误,请改用:

$('<span></span>',{
  "class": "arr",
   id: "id_" + i 
}).appendTo(this);