0

現在、次のスクリプトを使用してドロップダウン メニューから重複を削除していますが、Solspace のフリーフォームが検索条件を記憶できるようにするために、LAST オプション以外のすべての重複を削除する必要があります。

スクリプトを調整して、最後の重複からすべての重複を削除する方法を知っている私より賢い人はいますか?

// 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 に答える