Может ли codemirror находить текстовые поля по классам? - PullRequest
3 голосов
/ 21 февраля 2012

Хорошее начало

Я задал этот вопрос " Codemirror - Использовать несколько текстовых областей? " несколько лет назад с хорошим ответом.Тем не менее, он по-прежнему принимает идентификатор в качестве параметра.Идентификаторы уникальны.

Найти текстовую область по классу вместо идентификатора

При наличии нескольких текстовых областей, некоторые с HTML, а некоторые с CSS на одной странице, было бы неплоходобавить класс вместо идентификатора.

Пример

<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 .Единственное, чего не хватает, так это того, что я не могу заставить его работать на текстовых.

Ответы [ 3 ]

10 голосов
/ 30 июля 2015

Это будет более простое решение с меньшей сложностью .

$('.my_codemirror_html').each(function(index, elem){
      CodeMirror.fromTextArea(elem, {/*options*/});
});
6 голосов
/ 21 февраля 2012

Я решил это, добавив идентификатор ко всем текстовым областям с помощью jQuery.

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"
                    }
                );

            });
        });
0 голосов
/ 08 февраля 2019

Все версии 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"     
  });
}

Приведенный выше код найдет все текстовые области по классам и преобразует их в отдельные экземпляры codemirror, используя только javascript, а не jQuery.

...