用于删除重复列表项的更快的jQuery代码

时间:2013-02-18 15:57:37

标签: jquery html

我有以下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;
        }
        );

1 个答案:

答案 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/