jQuery: Finding duplicate ID's and removing all but the first

each, javascript, jquery

Solution

Use jquery filter `:gt(0)` to exclude first element.

$('[id]').each(function () {
    $('[id="' + this.id + '"]:gt(0)').remove();
});

Or select all the available elements, then exclude the first element using `.slice(1)`.

$('[id]').each(function (i) {
    $('[id="' + this.id + '"]').slice(1).remove();
});

Problem

``` $('[id]').each(function () { var ids = $('[id="' + this.id + '"]'); // remove duplicate IDs if (ids.length > 1 && ids[0] == this) $('#' + this.id).remove(); }); ``` The above will remove the first duplicate ID, however I want to remove the last. I've tried `$('#'+ this.id + ':last')` but to no avail. Fiddle In the fiddle the input with the value 'sample' should be kept when the append action takes place.

Original source