值之间的多标签替换

问题描述 投票:0回答:1

我有一些可以进行替换的脚本。它工作正常,但由于替换的值彼此靠近,我在值之间有多个

看起来像:

<br />
Value

<br />
Value

<br />


<br />
Value

<br />
Value

<br />


<br />
Value

<br />


<br />

<br />

我的任务是在值之间仅获取一个

<br>

<br />
Value

<br />
Value

<br />
Value

由于我的列表中的变体不多,我知道所有可用变体的一个决定,但这是不好的硬编码,例如:

var mystring=`<br />


<br />`

for (i=0; i<mystring.length; i++){
          var regex = new RegExp(mystring[i],"g");
           mystring = mystring.replace(regex, "");
       }    

有什么优雅的方法来解决我的案子吗?想到正则表达式,但对我来说太难写了。或者也许还有其他方法?

javascript html dom
1个回答
1
投票

如果将 then 添加到 DOM,您可以(反向)循环子元素,并删除任何重复的元素。

可能想扩展它以捕获第一个/最后一个。


以下结果

<br>
<em>Hello!</em>

<br>
<em>Hello!</em>

<br>
<em>Hello!</em>

<br>
<em>Hello!</em>

<br>
<em>Hello!</em>

<br>

const cs = document.body.children;
for (let i = cs.length - 1; i > 0; i--) {
    current = cs[i];
    before = cs[i - 1];
    if (current.nodeName === before.nodeName) {
        current.remove();
        console.log(`Removing child #${i}:`, current)
    }
}
<br />
<em>Hello!</em>

<br />
<em>Hello!</em>

<br />


<br />
<em>Hello!</em>

<br />
<em>Hello!</em>

<br />


<br />
<em>Hello!</em>

<br />


<br />

<br />

© www.soinside.com 2019 - 2024. All rights reserved.