Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Backgrid未附加我的自定义单元格_Javascript_Jquery_Backbone.js_Underscore.js_Backgrid - Fatal编程技术网

Javascript Backgrid未附加我的自定义单元格

Javascript Backgrid未附加我的自定义单元格,javascript,jquery,backbone.js,underscore.js,backgrid,Javascript,Jquery,Backbone.js,Underscore.js,Backgrid,您好,我正在尝试将我创建的自定义单元格类型附加到我的backgrid实例中,但我不断收到以下错误: Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. I Console.logged记录了集合和列。结果表明,上述异常发生在我的自定义单元格上。我认为这是因为它没有列属性: 这是我的自定义单元格的外观: return QuestionCell.ex

您好,我正在尝试将我创建的自定义单元格类型附加到我的backgrid实例中,但我不断收到以下错误:

Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
I Console.logged记录了集合和列。结果表明,上述异常发生在我的自定义单元格上。我认为这是因为它没有列属性:

这是我的自定义单元格的外观:

  return QuestionCell.extend({

    distractors: ['-', 't', 'f'],
    template: 'gradescreen/table/mc',
    render: function () {
      var $val_td, view = this, correct_td = '',
      current_state = view.model.get('responses').stateModel.get('state'),
      correct_answer = '', selected = '-', select = '', pos, key_length;
      view.current_response = view.getCurrentResponse(view.model);
      if (view.current_response.get('response').prefix) {
        selected = view.current_response.get(
                'response'
              ).prefix === 'a' ? 't':'f';
      }
      if (view.question_meta.get('correct_prefix') ===
          view.current_response.get(
          'response').prefix) {
        correct_td = ' correct_td';
      }
      $val_td = $('<td class="response_td' + correct_td + '" />');
      app.fetchTemplate(view.template, function (tmpl) {
        $val_td.html(tmpl({cid: view.cid, q_number: view.question_number}));
        key_length = _.keys(view.question_meta.get('answers')).length;
        for (pos = 0; pos <= key_length; pos++) {
          var prefix = view.distractors[pos];
          correct_answer =
            prefix === view.question_meta.get('correct_prefix') ?
            'correct_response':'';

          select = selected === prefix ? 'selected="true"':'';
          $('#answer_options_' + view.cid, $val_td).append(
            '<option class="' + correct_answer + '" ' + select + ' >' +
              prefix + '</option>');
        }
        if (current_state > 2) {
          $('#answer_options_' + view.cid, $val_td).prop('disabled', true);
        }
        //view.bindEvents($val_td);
      });
      this.el = $val_td;
      return this;
    }
  });
});

请帮忙。我怎样才能得到这个渲染。非常感谢

阅读文档,它看起来应该是这样的

$('#Student_Grid').append(grid.render().el);
而不是

$('#Student_Grid').append(grid.render().$el);

$el看起来像一个函数,其中as el是您希望附加的节点对象。

哪行抛出erorr?你能创建一个最小的JSFIDLE来重现这个问题吗?你会得到同样的错误吗?从外观上看,el是一个节点,它至少应该停止该特定错误。(其中as$el是一个函数,将抛出该错误)。
$('#Student_Grid').append(grid.render().$el);