我有以下jQuery代码用于删除重复的列表项。有更好/更快的方法吗? http://jsfiddle.net/Lijo/Hb28u/16/
HTML
<div style="width: 100px">
<ul>
<li style="background-color: Red">A</li>
<li style="background-color: Red">B</li>
<li style="background-color: Orange">B</li>
<li style="background-color: Red">C</li>
<li style="background-color: Orange">C</li>
<li style="background-color: Yellow">C</li>
<li style="background-color: Red">D</li>
</ul>
</div>
<input id="Submit1" type="submit" value="submit" class="submitButton" />
的jQuery
$('.submitButton').click(function (e) {
alert('Begin');
var previousVal = 'Initial';
$('ul li').each(function (i, item) {
var currentVal = $(item).text();
if (currentVal == previousVal) {
$(item).remove();
}
previousVal = currentVal;
});
alert('End');
return false;
}
);
答案 0 :(得分:4)
我会这样做,但没有测试它是否更快或更快,对我来说似乎都很快。
var seen = {};
$('ul li').each(function() {
var txt = $(this).text();
if (seen[txt])
$(this).remove();
else
seen[txt] = true;
});
return false;
}
);
这是我的解决方案的小提示,告诉你执行所需的时间。 http://jsfiddle.net/54cdR/