javascript - 从字符串中删除强标签及其内容

标签 javascript

我有以下带有此 html 的字符串,我想知道如何从字符串中删除/过滤所有强标签及其文本?

html

<p>
    <br>
    2-3 spsk græsk yoghurt, gerne 10 % 
    <strong>Dressing: </strong>
    <br>
    1 lille spsk god mayonnaise
    <br>
    1-2 tsk æbleeddike 
    <br>
    1-2 tsk honning 
    <br>
    himalayasalt og friskkværnet hvid peber
    <br>
</p>

到目前为止我已经有了这个,但似乎只有在顶部才删除强标签

var ingredientsArray = ingredients.split('<br>').map(it => it.trim()).filter(it => !!it && !it.startsWith('<strong>'));

最佳答案

您可以使用 DOM API 来实现此目的:

function stripStrong(html) {
    var span = document.createElement('span');
    span.innerHTML = html;
    [...span.getElementsByTagName('strong')].reverse().forEach( 
        strong => strong.parentNode.removeChild(strong)
    );
    return span.innerHTML;
}

var html = `<p>
    <br>
    2-3 spsk græsk yoghurt, gerne 10 % 
    <strong>Dressing: </strong>
    <br>
    1 lille spsk god mayonnaise
    <br>
    1-2 tsk æbleeddike 
    <br>
    1-2 tsk honning 
    <br>
    himalayasalt og friskkværnet hvid peber
    <br>
</p>`;

console.log(stripStrong(html));

请注意,如果 strong 标记具有属性、样式、与其他 strong 标记嵌套等,这也适用......正则表达式可能会遇到问题.

关于javascript - 从字符串中删除强标签及其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39676853/

相关文章:

javascript - 尝试在 React 中映射数组,但未定义

javascript - 设置背景颜色,但不是整个背景

javascript - Google Recaptcha 不适用于 ui bootstrap 模式

javascript - 状态改变时在 React JS 中实现过渡效果

javascript - 如何设置新的 firebase 插入的 id

java - 将排序映射从 Java 转换为 Javascript 中可读的排序对象

javascript - 具有同级子域的跨域 JavaScript 代码

javascript - 如何在 jQuery UI 中创建多范围时间 slider

javascript - 如何在 Firefox 中查看/删除本地存储?

javascript - 滚动动画不起作用