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