按类

时间:2016-12-19 20:59:23

标签: javascript jquery codemirror

我知道可以通过Id将codemirror应用于多个textarea,但不幸的是我需要使用class,因为我使用的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

1 个答案:

答案 0 :(得分: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