所以,我有 span 元素,我在其中附加了一些内容 - 有时这些内容是重复的。如何删除与另一个重复的这个值...
这是我的输出 html 的样子:
<span class="some_class">
"value01"
"value01"
"value02"
"value03"
"value03"
</span>
我无法添加任何功能,因为我不知道该怎么做,你能帮我吗?
所以,我有 span 元素,我在其中附加了一些内容 - 有时这些内容是重复的。如何删除与另一个重复的这个值...
这是我的输出 html 的样子:
<span class="some_class">
"value01"
"value01"
"value02"
"value03"
"value03"
</span>
我无法添加任何功能,因为我不知道该怎么做,你能帮我吗?
如果这些值是由 JS 代码添加的,那么你可以这样:
http://jsfiddle.net/Sahadar/Nzs52/5/
您只需要创建一个对象,它将存储放置在这个范围内的所有字符串,然后在插入之前检查这个插入的字符串是否已经在存储对象中。
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 工作副本:
创建数组变量
var vals = [];
它跟踪项目。然后,在将项目附加到跨度检查的函数中:
if (vals.indexOf("Mynewvalue") > -1) {
// Add to the span...
}