如何使用jQuery删除重复的内容/值

时间:2012-12-12 09:38:05

标签: javascript jquery duplicates

所以,我有span元素,我附加了一些内容 - 有时这个内容是重复的。如何删除这个与另一个值重复的值......

这就像我的输出html:

<span class="some_class">
   "value01" 
   "value01" 
   "value02" 
   "value03" 
   "value03" 
</span>

我无法添加任何功能,因为我不知道该怎么做,你可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

如果JS代码添加了这些值,那么你可以这样做:

http://jsfiddle.net/Sahadar/Nzs52/5/

你只需要创建一个对象,它将存储放在这个span中的所有字符串,然后在插入之前检查这个插入的字符串是否已经存储在store对象中。

function(event) {
        var textareaValue = textarea.value();
        if(insertedTexts[textareaValue]) {
             event.preventDefault();
             textarea.value('');                         
         } else {
             insertedTexts[textareaValue] = true;
             someSpan.append("\""+textareaValue+"\"");
         }
    }

如果这些值已经在span范围内,请使用以下函数:

var someSpan = $('.some_class');
var insertedTexts = [];

var result = someSpan.text().match(/"\w+(?=\")/gm);
result = result.map(function(value) {
    return value.substring(1,value.length);
});
result.forEach(function(value) {
    if(insertedTexts.indexOf(value) === -1) {
        insertedTexts.push(value);
    }
});
var newSpanText = "\""+insertedTexts.join('""')+"\"";
someSpan.text(newSpanText);
console.info(result, insertedTexts);

它正在重建跨度文本(修剪等),但保留了主要的功能。

jsFiddle工作副本:

http://jsfiddle.net/Sahadar/kKNXG/6/

答案 1 :(得分:0)

创建数组变量

var vals = [];

跟踪项目。然后,在将项目附加到范围检查的函数中:

if (vals.indexOf("Mynewvalue") > -1) {
  // Add to the span...
}