我有以下用于删除重复列表项的 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;
}
);
最佳答案
我会这样做,但还没有测试它是否更快,两者对我来说似乎都很快。
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/
关于jquery - 用于删除重复列表项的更快的 jQuery 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940237/