我有一些可以进行替换的脚本。它工作正常,但由于替换的值彼此靠近,我在值之间有多个
。
看起来像:
<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, "");
}
有什么优雅的方法来解决我的案子吗?想到正则表达式,但对我来说太难写了。或者也许还有其他方法?
如果将 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 />