tinymce:文本

时间:2015-11-30 15:01:58

标签: tinymce countelements

我想添加一个设置bootstrap accordian元素的自定义按钮。要做到这一点,我需要知道文本中有多少其他手风琴元素,以便我可以为新元素提供正确的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中计算这些?

谢谢, 詹姆斯

1 个答案:

答案 0 :(得分:1)

是的,这是可能的:

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