Javascript 在显示在UI中之前,使用jquery选中复选框

Javascript 在显示在UI中之前,使用jquery选中复选框,javascript,jquery,jsp,checkbox,Javascript,Jquery,Jsp,Checkbox,我的情况如下: 我从mysql数据库中读取数据,然后使用jsp、servlet和jquery将其显示在表中。 我正在创建动态行。我的问题是我想根据DB中的值选择复选框。以下是示例代码: $.ajax({ url: 'FetchQAStatus', type: 'POST', contentType: 'text/html', success: function (da

我的情况如下:

我从mysql数据库中读取数据,然后使用jsp、servlet和jquery将其显示在表中。 我正在创建动态行。我的问题是我想根据DB中的值选择复选框。以下是示例代码:

$.ajax({
                url: 'FetchQAStatus',
                type: 'POST',
                contentType: 'text/html',

                success: function (data) {
                    console.log(data);
                    var tbody = $('#edit_table_body');
                      $.each(data, function(key,value) { 
                          tbody.append('<tr><td>'+value['id']+'</td><td><select      name="project" id="project" class="project"><option value="Geo">Geo</option>'+
                                '<option value="UAC">UAC</option></select></td><td><input type="text" name="jira" id="jira" class="freshblue" value="'+
                                value['jira']+'"/>'+'<td><textarea name="summary" id="summary" >'+value['summary']+'</textarea></td><td>'+
                                '<input type="text" name="status" id="status" class="freshblue" value="'+value['status']+'"/></td>'+
                                '<td><textarea name="comments" id="comments" >'+value['comments']+'</textarea></td><td><input type="checkbox" '+
                                'name="prod_deploy" id="prod_deploy">'+
                                '</td></tr>');

                            $(this).find("input#prod_deploy").prop("checked", true);

                      });



                        $(".edit_status").slideToggle();

                },
但这并不是选择复选框,因为该复选框在UI上仍然不可见/不加载。
请帮助

您可以执行以下任一操作:

...
var content = '<tr>'
  + '<td>' + value['id'] + '</td>'
  + '<td>'
    + '<select name="project" id="project" class="project">'
      + '<option value="Geo">Geo</option>'
      + '<option value="UAC">UAC</option>'
    + '</select>'
  + '</td>'
  + '<td>'
    + '<input type="text" name="jira" id="jira" class="freshblue" value="' + value['jira'] + '"/>'
  + '</td>'
  + '<td>'
    + '<textarea name="summary" id="summary" >' + value['summary'] + '</textarea>'
  + '</td>'
  + '<td>'
    + '<input type="text" name="status" id="status" class="freshblue" value="' + value['status'] + '"/>'
  + '</td>'
  + '<td>'
    + '<textarea name="comments" id="comments" >' + value['comments'] + '</textarea>'
  + '</td>'
  + '<td>'
    + '<input type="checkbox" name="prod_deploy" id="prod_deploy" checked>'
  + '</td>'
+ '</tr>';

tbody.append(content);
$(content).find('input#prod_deploy').prop('checked', true);
或者这个:

...
var content = '<tr>'
  + '<td>' + value['id'] + '</td>'
  + '<td>'
    + '<select name="project" id="project" class="project">'
      + '<option value="Geo">Geo</option>'
      + '<option value="UAC">UAC</option>'
    + '</select>'
  + '</td>'
  + '<td>'
    + '<input type="text" name="jira" id="jira" class="freshblue" value="' + value['jira'] + '"/>'
  + '</td>'
  + '<td>'
    + '<textarea name="summary" id="summary" >' + value['summary'] + '</textarea>'
  + '</td>'
  + '<td>'
    + '<input type="text" name="status" id="status" class="freshblue" value="' + value['status'] + '"/>'
  + '</td>'
  + '<td>'
    + '<textarea name="comments" id="comments" >' + value['comments'] + '</textarea>'
  + '</td>'
  + '<td>'
    + '<input type="checkbox" name="prod_deploy" id="prod_deploy" checked>' // <== notice the "checked" attribute here
  + '</td>'
+ '</tr>';

tbody.append(content);

这个问题解决了。如果有人正在寻找,请发布答案:

  var prodCheck = (value['isProd'] == true) ? "checked":"";
                          var content = '<tr><td>'+value['id']+'</td><td><select name="project" id="project" class="project"><option value="Geo">Geo</option>'+
                            '<option value="UAC">UAC</option></select></td><td><input type="text" name="jira" id="jira" class="freshblue" value="'+
                            value['jira']+'"/>'+'<td><textarea name="summary" id="summary" >'+value['summary']+'</textarea></td><td>'+
                            '<input type="text" name="status" id="status" class="freshblue" value="'+value['status']+'"/></td>'+
                            '<td><textarea name="comments" id="comments" >'+value['comments']+'</textarea></td><td><input type="checkbox" '+
                            'name="prod_deploy" class="prod_deploy" '+prodCheck+'>'+
                            '</td></tr>';
                          tbody.append(content);

下面是代码,您可以在显示复选框之前将其显示为选中状态

<input type="checkbox" checked="true" />

现在,如上所述,在要显示选中复选框的位置追加。

不可见或未选中?您正在添加许多具有相同ID的元素;那不会有好结果的。另外,每个方法内部的上下文是否和tbody相同?您正在向其中添加新元素,但在$this中检查新添加的元素。。。不确定您要在那里做什么。@heinob不可见,我的意思是我正在创建元素,但它没有显示在中UI@Derek请忽略id部分,我知道它不正确,我没有在我的代码中使用它。每个方法基本上都是针对数据库中的所有数据,我迭代每一行,然后在表中创建一行。希望这能澄清这些都不起作用。我想问题是这张表还没有显示出来。它基本上会在最后一行$之后加载。edit_status.slideToggle;