4

一个好的开始

几年前,我问了这个问题“ Codemirror - 在多个文本区域上使用? ”,并给出了一个很好的答案。但是,它仍然需要一个 ID 作为参数。ID 是唯一的。

按类而不是 ID 查找 textarea

当在同一个页面上有多个文本区域时,一些带有 HTML 和一些带有 CSS,最好添加一个类而不是一个 ID。

例子

<p>Some content</p>

<textarea class="my_codemirror_html">
</textarea>

<p>Some content</p>

<textarea class="my_codemirror_html">
</textarea>'

如果我可以使用 jQuery,那很好。无论如何,我在页面上使用它。

2012-02-21 更新 - 快到了

我在jsFiddle上找到了这篇文章。唯一缺少的是我不能让它在 textareas 上工作。

4

3 回答 3

14

这将是一个更简单且复杂性更低的解决方案。

$('.my_codemirror_html').each(function(index, elem){
      CodeMirror.fromTextArea(elem, {/*options*/});
});
于 2015-07-30T05:06:27.437 回答
6

我通过向所有文本区域添加带有 jQ​​uery 的 ID 来解决它。

jQuery(document).ready(function($) {
            var code_type = '';
            $('.code-html').each(function(index) {
                $(this).attr('id', 'code-' + index);
                CodeMirror.fromTextArea(document.getElementById('code-' + index), {
                        mode: "text/html",
                        lineNumbers: true,
                        tabMode: "indent"
                    }
                );

            });
        });
于 2012-02-21T18:01:24.313 回答
2

所有javascript版本:

var codemirrorInstance = [];
var foundtextareasarr = document.getElementsByClassName('classForTextareas');
for(var i = 0; foundtextareasarr[i]; ++i) { 
  codemirrorInstance[i] = CodeMirror.fromTextArea(foundtextareasarr[i], {
    lineNumbers: true,
    mode: "add-your-mode-here"     
  });
}

上面的代码将按类查找所有文本区域,并仅使用 javascript 而不是 jQuery 将它们转换为单独的 codemirror 实例。

于 2019-02-08T17:34:38.693 回答