javascript - element.nextElementSibling 未返回正确的元素

标签 javascript ckeditor ckeditor5

我正在使用 CKEditor 5 在每个 textarea 上创建一个富含文本的编辑器。有 class .section-dynamique-fr

编辑器确实已附加到我的 html 页面。

现在,当我尝试使用 e.nextElementSibling 通过 javascript 访问编辑器时,它不会返回其 nextElementSibling正如控制台检查器中的节点树所示,它返回 e.nextElementSibling.nextElementSibling .

知道为什么我无法访问 e.nextElementSibling 吗? (带有 class .ck-editor 的 div )?

请参阅附图了解 html 节点结构

enter image description here

document.querySelectorAll('.section-dynamique-fr').forEach( (e) => {

    ClassicEditor
        .create( document.querySelector('#' + e.id), {
            // toolbar: [ 'heading', '|', 'bold', 'italic', 'link' ]
        } )
        .then( editor => {
            window.editor = editor;
            thisEditor = editor;
        } )
        .catch( err => {
            console.error( err.stack );
        } );

    console.log(e); //This gives me the textarea
    console.log(e.nextElementSibling); //This should gives me the div with class ck-editor but instead gives me the div with class .textarea-saved-content-fr

最佳答案

这是因为create执行后编辑器没有创建。您需要将代码替换为then回调。 callback是一个Promise,它将在编辑器完全创建后解析。请参阅documentaion

document.querySelectorAll('.section-dynamique-fr').forEach( (e) => {

    ClassicEditor
        .create( document.querySelector('#' + e.id), {
            // toolbar: [ 'heading', '|', 'bold', 'italic', 'link' ]
        } )
        .then( editor => {
            window.editor = editor;
            thisEditor = editor;
            console.log(e.nextElementSibling);
        } )
        .catch( err => {
            console.error( err.stack );
        } );

关于javascript - element.nextElementSibling 未返回正确的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55261911/

相关文章:

javascript - .toFixed 函数不适用于 js-object

javascript - 如何隐藏一个元素并仍然能够转换它并且在其中有一些粘性的东西?

ckeditor - CKFinder - 快速上传成功上传后未将 URL 传递到图像信息选项卡

javascript - 自定义 CKeditor 5 的下拉按钮

javascript - jQuery ajax "too much recursion"

javascript - 选择小部件可编辑

javascript - 当文本由外部源更新时,防止 ckeditor 触发设置回调

laravel - 类型错误 : Cannot read properties of undefined (reading 'model' ) at Proxy. $_setUpEditorEvents

ckeditor5 - 如何让 CKEditor 5 "Link"对话框固定到自定义 DOM 元素而不是 'document.body'

javascript - Ext 方式创建 DOM 元素,还是 jQuery 的极简替代品?