通过类应用Codemirror到多个文本区域

3

我知道可以通过ID将codemirror应用于多个textarea,但不幸的是我需要使用类,因为我使用的textarea已经有其他脚本的ID。

这是我迄今为止的代码。

HTML

<textarea class="textarea-class"></textarea>
<textarea class="textarea-class"></textarea>

JS

$('.textarea-class').each(function(index, elem){
      CodeMirror.fromTextArea(elem, {
        lineWrapping: true,
        mode: "javascript",
        theme: "neat",
        lineNumbers: true,
      });
});

JSBIN


你忘记在你的jsbin示例中添加jQuery了。 - j08691
谢谢。我感觉好蠢哈哈。 - Vianne
1个回答

2

你无法传递jQuery元素!它必须是一个常规元素。为了解决这个问题,我们将遍历来自document.querySelectorAll('.textarea-class')的元素数组,并将每个元素传递到CodeMirror.fromTextarea()函数中。

JS

var textareas = document.querySelectorAll(".textarea-class");

for (var i = 0; i < textareas.length; i++) {
    CodeMirror.fromTextArea(textareas[i], {
        lineWrapping: true,
        mode: "javascript",
        theme: "neat",
        lineNumbers: true
     });
}

使用CodeMirror库和样式表的演示:https://codepen.io/anon/pen/OvLxaG


这是原生JavaScript版本。在包含jQuery之后,OP的版本实际上可以工作 - elem是一个DOM元素,而不是jQuery对象。请参阅jQuery API中的each - traktor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接