Как развернуть текст от HTML-тэга с помощью jQuery?
Например, как преобразовать этот HTML
<p>A <i>sentence</i> with <b>bold words</b>.</p>
в (т.е. удаляют теги полужирного начертания),
<p>A <i>sentence</i> with bold words.</p>
использование только jQuery и никакого regex?
Вы можете сделать это:
$("b").each(function() {
$(this).replaceWith(this.childNodes);
});
Примечание: это сохраняет весь HTML-код, который у вас есть внутри, где .text ()
может его преобразовать .
Если вы хотите буквально просто убрать
, вы можете использовать ответ Cheeso немного проще в jQuery 1.4 +:
$("p").html(function(i,h){ return h.replace(/<b>/g,'').replace(/<\/b>/g,''); });
Чтобы развернуть только текст и ничего больше, вы можете использовать:
$("b").replaceWith($("b").text());
Я думаю, что полагаться только на jQuery в этом случае излишне усложняет ситуацию. Проще было бы использовать метод replace
, который принимает либо обычную строку, либо регулярное выражение.
Использование regex, как правило, является оптимальным в данном случае, поскольку вы хотите получить несколько замен, имеющих примерно одинаковый шаблон.
Как вы это делаете, зависит от дополнительных ограничений в вашей ситуации.
Нет общего способа разблокировать жирный шрифт.
Если теги всегда
, тогда вы можете сделать это
var h = $(elementSelector).html;
h = h.replace("<b>","");
h = h.replace("</b>","");
$(elementSelector).html(h);
Я не уверен, почему вам не нравится Regex.