tinymce:文本中有多少个带有 class 的元素

tinymce: how many elements with class are in text

我想添加一个设置 bootstrap 手风琴元素的自定义按钮。为此,我需要知道文本中已经有多少其他手风琴元素,以便我可以为新元素提供正确的 ID。现在我有:

    // 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 类,这样我就可以使 heading1collapse1 随着每次新添加而相应增加。另外我想我需要能够编辑已经存在的那些,以防一个被删除,这样下一个添加的就不会与另一个不同的重复。

有没有办法在 jQuery 或 javascript 中计算这些?

谢谢, 詹姆斯

是的,这是可能的:

var ed = tinymce.get('your_editor_id');
var $elements = $(ed.getBody()).find('.panel-collapse');
var count = $elements.length;