jquery-删除重复的连续元素 我需要的东西 x 我需要的东西 x 我需要的东西 xxx 我需要的东西

jquery-删除重复的连续元素 我需要的东西 x 我需要的东西 x 我需要的东西 xxx 我需要的东西,jquery,Jquery,在有3个跨度元素的行上,如何删除除一个以外的所有元素?我只希望每个元素之间有一个 编辑:使html正确,以便人们关注实际问题 <div>something i need</div> <span>x</span> <div>something i need</div> <span>x</span> <div>something i need</div> <span

在有3个跨度元素的行上,如何删除除一个以外的所有元素?我只希望每个元素之间有一个

编辑:使html正确,以便人们关注实际问题

<div>something i need</div>

<span>x</span>

<div>something i need</div>

<span>x</span>

<div>something i need</div>

<span>x</span><span>x</span><span>x</span>

<div>something i need</div>
如您所见,连续跨距已被删除,div之间只有一个
x
,而不是三个:

最好将上述元素包装在一个容器中,并且只在该容器中执行移除操作。i、 e:

$('span').each(function() {
    while($(this).prop('tagName') == $(this).next().prop('tagName'))
        $(this).next().remove();
});
这里有小提琴:

将使用以下html:

$('div').each( function() {
    if(!$(this).prev().hasClass('a'))
        $(this).remove();
});
我需要的东西
x
我需要的东西
x
我需要的东西
xxx
我需要的东西
正则表达式 假设HTML元素直接位于
中,那么正则表达式反向引用也可以删除连续的重复项,这里通过jQuery实现:

<span class="a">something i need</span>

<div>x</div>

<span class="a">something i need</span>

<div>x</div>

<span class="a">something i need</span>

<div>x</div><div>x</div><div>x</div>

<span class="a">something i need</span>

这是错误的html。您不能将
放在
  • 之间li元素在哪里?3个li元素在哪里?由于第一条注释,我将它们更改为跨距。起初我并没有真正编写正确的html,没想到有人会指出,考虑到我的问题在任何方面都不相关。看看哦,亲爱的,我是在结构中有
    li
    时开始编写的,所以我必须创建自己的。谢谢!我向跨度本身添加了类。工作起来很有魅力!
    <span class="a">something i need</span>
    
    <div>x</div>
    
    <span class="a">something i need</span>
    
    <div>x</div>
    
    <span class="a">something i need</span>
    
    <div>x</div><div>x</div><div>x</div>
    
    <span class="a">something i need</span>
    
    const jqContainer = jQuery("body");
    jqContainer
        .html(
            jqContainer
                .html()
                .replace(/(<span>[^<>]+<\/span>)+/g, "$1")
        )
    ;
    
    span + span {
        display: none;
    }