使用javascript从下拉菜单中删除重复项

Removing duplicates from dropdown using javascript

本文关键字:删除 javascript 下拉菜单 使用      更新时间:2023-09-26

我目前正在使用以下脚本从下拉菜单中删除重复项,但我现在需要尝试删除除LAST选项外的所有重复项,以使Solspace的Freeform能够记住搜索条件。

有没有比我聪明的人知道如何调整脚本以删除除最后一个之外的所有重复?

// REMOVE DUPLICATES FROM LOCATION DROPDOWN
var optionValues =[];
$('#locationList option').each(function(){
   if($.inArray(this.value, optionValues) >-1){
      $(this).remove()
   }else{
      optionValues.push(this.value);
   }
});

提前感谢,

汤姆

$(document).ready(function() {
  var optionValues = [];
  var lastRemoved = null;
  $('#locationList option').each(function(){
     if($.inArray(this.value, optionValues) >-1){
        $(this).remove();
        // remember the very last removed one
        lastRemoved = $(this);
     }else{
        optionValues.push(this.value);
     }
  });
  // after removing duplicates, add the very last removed one back to the list
  $('#locationList').append(lastRemoved);
});

假设我正确理解了你的问题,这将从列表中删除所有重复,不包括最后一次出现。如果有帮助,请告诉我!

不确定这是否是您想要做的:

var optionValues = [];
var optionItems  = $('locationList option');
optionItems.each(function (index) {
    if (index > optionItems.length - 1) {
        return;
    }
    if ($.inArray(this.value, optionValues) > -1) {
        $(this).remove();
    } else {
        optionValues.push(this.value);
    }
});