从文本中删除 <b> 标记

Remove <b> tag from text

本文关键字:标记 文本 删除      更新时间:2023-09-26

我想用Greasemonkey使粗体文本非粗体。我只找到了删除标签及其文本的方法,但没有找到简单地删除标签本身的方法。

那么我该怎么做

<b>
some text
</b>

some text

假设每个 B 标签中只有一个 TextNode。

b.parentNode.replaceChild(b.firstChild, b);

例 : http://jsfiddle.net/DGTh5/

假设您正在处理元素,而不是字符串:

function unwrapChildren(element) {
    var parent, node, nextNode;
    parent = element.parentNode;
    for (node = element.firstChild; node; node = nextNode) {
         nextNode = node.nextSibling;
         parent.insertBefore(node, element);
    }
    parent.removeChild(element);
}

然后使用 b 元素调用 unwrapChildren。上面会将其所有子节点(可能只有一个,即文本节点)移动到b元素的父节点中,b元素所在的父节点,然后删除b元素。