jQuery изменить весь экземпляр текста на HTML

0

Например, у меня есть текст, который похож на {Lorem} всем DOM. Как мне изменить все экземпляры

<p>Lorem ipsum dolor imet</p>?

Я пробую это:

var loremReplace = '<p>Lorem ipsum dolor imet</p>';
var content = $('body').html().replace(/\{Lorem\}/g, loremReplace);
$('body').html(content);

Но, очевидно, я делаю что-то неправильно, потому что он не работает. Кроме того, как мне это сделать, если {Lorem} существует вне <body>, например, в <head>?

  • 3
    Работает нормально: jsfiddle.net/XrVSv
  • 0
    Это именно то, для чего были созданы регулярные выражения, нет лучшего способа, чем просто анализ HTML и замена строк во всем документе. Вы на месте, отличное решение.
Показать ещё 2 комментария
Теги:

1 ответ

0
Лучший ответ

Вам действительно не нужно обрезать фигурные скобки в функции замены:

var loremReplace = '<p>Lorem ipsum dolor imet</p>';
var content = $('body').html().replace(/{Lorem}/g, loremReplace);
$('body').html(content);

Для того, чтобы заменить выражение внутри головы, вы можете просто выбрать head тег и выполнить с body:

var headReplace = 'Lorem ipsum dolor imet';
var headContent = $('head').html().replace(/{Lorem}/g, headReplace);
$('head').html(headContent);

Смотрите это в действии: http://jsbin.com/meqicuto/2/edit

  • 0
    Эй, чувак, спасибо за головы с фигурными скобками и head частью. Похоже, проблема была в том, что она конфликтовала с другими сценариями. Решил это с помощью $(window).load()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню