JS
$('.msgln').each(function() {
var text = $(this).text();
$(this).text(text.replace('Admin', 'sys-admin'));
});
HTML
<div class='msgln'><b>Admin</b>:<i> Chat cleared</i><br></div>
Замена класса '.msgln' удаляет форматирование (жирным шрифтом, курсивом и т.д.). Как я могу это решить?
Я согласен с так называемым базовым решением. Здесь моя версия с небольшим обновлением, так как вы можете иметь тег, представленный в других частях HTML с классом msgln. Как насчет следующего?
HTML
<div class='msgln'><b><span class="username">Admin</span></b>:<i> Chat cleared</i><br></div>
JS
$('.msgln span.username').each(function() {
var text = $(this).text();
$(this).text(text.replace('Admin', 'sys-admin'));
});
Это может происходить из-за того, что правила CSS для bold, italcs etc
Могут быть определены для класса msgln
, поэтому после удаления класса связанные с ним правила CSS также будут удалены.
Решение состоит в том, чтобы добавить еще один класс, где определены одни и те же правила CSS
Как сказано здесь, http://api.jquery.com/text/#text2, он заменяет весь внутренний html заданным текстом.
Вам нужно перейти к элементу с текстом, который вы хотите заменить. В вашем случае это будет .msgln b
$('.msgln b').each(function() {
var text = $(this).text();
$(this).text(text.replace('Admin', 'sys-admin'));
});