Управление содержимым TinyMCE с помощью jQuery - PullRequest
9 голосов
/ 12 января 2012

С TinyMCE я могу легко манипулировать контентом и отправлять его обратно в редактор, например:

    // get content from tinyMCE
    var content = tinyMCE.get('content').getContent();

    // manipulate content using js replace
    content = content.replace(/<\/?div>/gi, '');

    // send back to tinyMCE
    tinyMCE.get('content').setContent( content );

Приведенный выше код работает нормально.Однако я не могу заставить это работать:

    // get content from tinyMCE (it provides an html string)
    var content = tinyMCE.get('content').getContent();

    // make it into a jQuery object
    var $content = $(content);

    // manipulate the jquery object using jquery
    $content = $content.remove('a');

    // use a chained function to get its outerHTML
    content = $("<div />").append( $content.clone() ).html();               

    // send back to tinyMCE
    tinyMCE.get('content').setContent( content );

Что-то не так с моей методологией?

Ответы [ 2 ]

4 голосов
/ 15 января 2012

Настройка и получение TinyMCE были правильными; проблема была с моим использованием .remove():

$content = $content.remove('a');

Поскольку содержимое TinyMCE представляло собой один объект, а , а не набор объектов, некоторые из которых были тегами <a>, эта манипуляция не имела никакого эффекта, а возвращаемый HTML был таким же, как оригинал.

Чтобы удалить ссылки, мне нужно было вот что:

$content = $content.find('a').remove();

Я получил разъяснение в этой теме: Разница между $ ('# foo'). Remove ('a') и $ ('# foo'). Find ('a'). Remove ()

1 голос
/ 12 января 2012

Вам необходимо получить содержимое редактора с помощью

var content = $('#content').html();

и установить содержимое с помощью

var content = $('#content').html('<span>NEW CONTENT</span>');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...