tinymce: сколько элементов с классом в тексте

Я хочу добавить пользовательскую кнопку, которая настраивает элемент аккордеона начальной загрузки. Для этого мне нужно знать, сколько других аккордеонных элементов уже есть в тексте, чтобы я мог дать новому элементу правильный идентификатор. Прямо сейчас у меня есть:

    // Add a custom button
    ed.addButton('accordianArea', {
        title : 'Accordian Area',
        text : '[accordian/]',
        icon: false,
        onclick : function() {
            // Add you own code to execute something on click
            ed.focus();

            var text = ed.selection.getContent({'format': 'html'});

            var accordianText = '<div class="panel panel-default">' +
                '<div class="panel-heading" role="tab" id="heading1">' +
                    '<h4 class="panel-title">' +
                        '<a role="button" data-toggle="collapse" href="#heading1" aria-expanded="true" aria-controls="heading1">' +
                            'Accordian Title<span id="_cursor" />' +
                        '</a>' +
                    '</h4>' +
                '</div>' +
                '<div id="heading1" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading1">' +
                    '<div class="panel-body">' +
                        (text ? text : 'Accordian Text') +
                    '</div>' +
                '</div>' +
            '</div>';

            ed.execCommand('mceInsertContent', false, accordianText);

            ed.selection.select(ed.dom.select('#_cursor')[0]); //select the inserted element
            ed.selection.collapse(0); //collapses the selection to the end of the range, so the cursor is after the inserted element
            ed.dom.remove('_cursor'); //remove the element
        }
    });

Мне нужно уметь считать сколько panel-collapse классы в тексте, поэтому я могу сделать heading1 а также collapse1 увеличивайте соответственно с каждым новым дополнением. Кроме того, я полагаю, мне нужно будет иметь возможность редактировать уже существующие в случае удаления одного, чтобы следующий добавленный не был дубликатом другого.

Есть ли способ подсчитать их в jQuery или javascript?

Спасибо Джеймс

1 ответ

Решение

Да, это возможно

var ed = tinymce.get('your_editor_id');
var $elements = $(ed.getBody()).find('.panel-collapse');
var count = $elements.length;
Другие вопросы по тегам