从JQuery中的CK Editor textarea获取文本

我在一个应用程序中使用CK编辑器。

 

但我无法从该textarea检索文本。 我试过了-

  var content= $("#contentDetails").text(); //and also .val() & .html() 

但是content变量仍然是空的。

任何的想法?

 //UPDATE - add my codes below  CKEDITOR.replace('contentDetails'); $(function () { $("#submitcontent").click(function (e) { e.preventDefault(); var content= $("#contentDetails").text(); }); });  

试试这个:

  var text = CKEDITOR.instances.contentDetails.getData(); 

官方CKEditor jQuery适配器指南解释:

 // Get the editor data. var data = $( 'textarea.editor' ).val(); // Set the editor data. $( 'textarea.editor' ).val( 'My new content' ); 

Ckeditor将用它自己的元素替换你的textarea,这是你需要从中获取html的地方。 如果你检查原始文本区域,你会发现它是空的,内容实际上是编辑器生成的一堆html中的其他地方。 尝试使用inspect元素查找包含可以使用的内容的元素的选择器。 确保在编辑器初始化后执行jQuery。

这是另外一个例子(基于CKEditor5 ):

 let theEditor; ClassicEditor .create(document.querySelector('#contentDetails')) .then(editor => { theEditor = editor; }) .catch(error => { console.error(error); }); function getDataFromTheEditor() { return theEditor.getData(); } document.getElementById('getdata').addEventListener('click', () => { alert(getDataFromTheEditor()); }); 
    

根据官方文档: CKEditor Dom Element

尝试

 textarea = document.getElementById('contentDetails'); textareaNode = new CKEDITOR.dom.element(textarea); textareaNode.getValue();