Как развернуть текст с помощью jQuery?
Как развернуть текст из тега 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?
Ответы
Ответ 1
Вы можете сделать это:
$("b").each(function() {
$(this).replaceWith(this.childNodes);
});
Примечание: это сохраняет любой HTML-код внутри, где .text()
может преобразовать его.
Если вы хотите буквально просто разделить <b></b>
, вы можете использовать Cheeso немного легче в jQuery 1.4 +:
$("p").html(function(i,h){ return h.replace(/<b>/g,'').replace(/<\/b>/g,''); });
Ответ 2
Сначала я полюбил wrapInner, а затем развернулся.
Например, если вы пытались развернуть гиперссылку
<a id="anId" href="#">sample text</a>
то вы можете развернуть гиперссылку через
$('#anId').wrapInner('<span/>');
$('#anId span').unwrap();
Ответ 3
Как вы это делаете, это зависит от дополнительных ограничений в вашей ситуации.
Нет общего способа разворачивания.
Если теги всегда <b>
, вы можете сделать это
var h = $(elementSelector).html;
h = h.replace("<b>","");
h = h.replace("</b>","");
$(elementSelector).html(h);
Я не уверен, почему вам не нравится Regex.
Ответ 4
Чтобы развернуть только текст и ничего другого, что вы могли бы использовать:
$("b").replaceWith($("b").text());
Ответ 5
Я думаю, что полагаться исключительно на jQuery, в этом случае излишне усложняет ситуацию. Было бы проще использовать метод replace
, который принимает либо нормальную строку, либо регулярное выражение.
Использование регулярного выражения, как правило, подходит для этого случая, потому что вы хотите, чтобы несколько подстановок имели примерно одинаковый шаблон.