如何删除标签元素上的相同文本? 在这种情况下,我发现了这个技巧:
var seen = '';
$('div').each(function() {
var see = $(this).text();
if (seen.match(see)) {
$(this).remove();
} else {
seen = $(this).text();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Book</div>
<div>Book</div>
<div>Book</div>
<div>Pencil</div>
<div>Pencil</div>
<div>Book Book Book Pencil Pencil</div>
上面的代码没有错误。因为我在同一个标签中包含了相同的几个单词。
<div>Book Book Book Pencil Pencil</div>
有办法解决这个问题吗?
编辑:我想改成<div>Book Pencil</div>
最佳答案
我在下面给出了一个很好的解决方案。
注意:以下两个示例使用与您预期相同的脚本可以很好地工作。这是一个通用脚本,适用于这两个示例
示例 1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Book</div>
<div>Book</div>
<div>Book</div>
<div>Pencil</div>
<div>Pencil</div>
<div>Book</div>
<div>Book Book Book Pencil Pencil</div>
<script>
var tags = [];
$('div').each(function(){
var tagArray = $(this).text().split(' ');
for(var i = tagArray.length - 1; i >= 0; i--) {
var tag = tagArray[i];
if(tags.indexOf(tag) > -1) {
tagArray.splice(i, 1);
} else {
tags.push(tag);
}
}
var currentTag = tagArray.join(' ');
if(currentTag){
$(this).text(currentTag);
}
else{
$(this).remove();
}
});
</script>
示例 2
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Book Book Book Pencil Pencil</div>
<script>
var tags = [];
$('div').each(function(){
var tagArray = $(this).text().split(' ');
for(var i = tagArray.length - 1; i >= 0; i--) {
var tag = tagArray[i];
if(tags.indexOf(tag) > -1) {
tagArray.splice(i, 1);
} else {
tags.push(tag);
}
}
var currentTag = tagArray.join(' ');
if(currentTag){
$(this).text(currentTag);
}
else{
$(this).remove();
}
});
</script>
关于JavaScript 删除 Div 元素上的重复标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40827406/