使用javascript从下拉列表中删除重复项

时间:2016-08-26 12:40:26

标签: javascript forms freeform

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

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

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

提前致谢,

汤姆

2 个答案:

答案 0 :(得分:1)

$(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);
});

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

答案 1 :(得分:0)

不确定这是否是您要做的事情:

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);
    }
});