0

我目前正在使用以下脚本从下拉菜单中删除重复项,但我现在需要尝试删除除 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);
   }
});

提前致谢,

汤姆

4

2 回答 2

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

假设我正确理解了您的问题,这将从列表中删除所有重复项,不包括最后一次出现。让我知道这是否有帮助!

于 2016-08-26T12:53:29.733 回答
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);
    }
});
于 2016-08-26T12:50:13.190 回答