Javascript CKEDITOR不工作,出现错误无法读取属性';getEditor';在ckeditor.js:321

Javascript CKEDITOR不工作,出现错误无法读取属性';getEditor';在ckeditor.js:321,javascript,Javascript,这是我的JavaScript代码: var data = data.Data; var html = ""; for(var i = 0; i<data.length;i++){ html = html +'<div class="form-group">'+ '<label class="control-label col-lg-2">Hasil Rapat</label>'+

这是我的JavaScript代码:

var data = data.Data;
var html = "";      
for(var i = 0; i<data.length;i++){
     html = html +'<div class="form-group">'+
                       '<label class="control-label col-lg-2">Hasil Rapat</label>'+
                       '<div class="col-lg-10">'+
                           '<textarea rows="20" id="rapat" class="form-control rapat" name="hasil_rpt">'+data[i].hasil_rpt+'</textarea>'+
                       '</div>'+  
                   '</div>'
}

我看到的第一个危险信号是,CKEditor不知道如何使用您的逻辑。我不确定您使用的是哪个版本的CKEditor,因为v5中的情况发生了巨大的变化。但是,我认为你需要做的是:

var data = data.Data;
var html = "";      
for(var i = 0; i<data.length;i++) {
        var id = 'editorId_' + i;
     html = html +'<div class="form-group">'+
                       '<label class="control-label col-lg-2">Hasil Rapat</label>'+
                       '<div class="col-lg-10">'+
                           '<textarea rows="20" id="'+ id + '" class="form-control rapat" name="hasil_rpt">'+data[i].hasil_rpt+'</textarea>'+
                       '</div>'+  
                   '</div>';
    CKEDITOR.replace(id);
}

出现了什么错误?无法读取属性“getEditor”或“Undefined”。实际上,上面的代码将不起作用,因为
for
循环只是构建HTML,而不是将其附加到DOM。如果将html直接添加到DOM中,那么就可以成功调用CKEDITOR来实例化编辑器(不过可能是一个竞争条件)。如果创建一个JSFIDLE来替换您的问题,我可以帮助您更好地解决它,但您的问题将是在调用CKEDITOR实例化元素之前,确保元素在dom中实际呈现。
CKEDITOR.replace('rapat');
var data = data.Data;
var html = "";      
for(var i = 0; i<data.length;i++) {
        var id = 'editorId_' + i;
     html = html +'<div class="form-group">'+
                       '<label class="control-label col-lg-2">Hasil Rapat</label>'+
                       '<div class="col-lg-10">'+
                           '<textarea rows="20" id="'+ id + '" class="form-control rapat" name="hasil_rpt">'+data[i].hasil_rpt+'</textarea>'+
                       '</div>'+  
                   '</div>';
    CKEDITOR.replace(id);
}
var data = data.Data;
var parentElement = ''; // <-- Get the reference to your container element here
for(var i = 0; i<data.length;i++) {
        var id = 'editorId_' + i;
     var html +'<div class="form-group">'+
                       '<label class="control-label col-lg-2">Hasil Rapat</label>'+
                       '<div class="col-lg-10">'+
                           '<textarea rows="20" id="'+ id + '" class="form-control rapat" name="hasil_rpt">'+data[i].hasil_rpt+'</textarea>'+
                       '</div>'+  
                   '</div>';
    parentElement.appendChild(html);
    CKEDITOR.replace(id);
}