在选择框中获取重复的值,需要从选择框中删除重复的选项

时间:2019-08-11 10:04:07

标签: javascript php jquery html select

  

我要首先从取消选择的值中删除重复的值   在php中还是在jquery / javascript中有可能?

     

我正在网站上的编辑页面上,我需要显示一个 SELECT 框   在其中应该选择一些值,而在某些情况下则不要。

从数据库中获取数据后,我得到了以下代码

<select name="tour_category[]" multiple="multiple" style="height:300px;">
  <option value="1" selected>Family</option>
  <option value="3" selected>Wildlife</option>
  <option value="4" selected>Cuisine (Food Tours & Food Walks)</option>
  <option value="1">Family</option>
  <option value="1">Family</option>
  <option value="2">Religion & Spirituality</option>
  <option value="2">Religion & Spirituality</option>
  <option value="2">Religion & Spirituality</option>
  <option value="3">Wildlife</option>
  <option value="3">Wildlife</option>
  <option value="4">Cuisine (Food Tours & Food Walks)</option>
  <option value="4">Cuisine (Food Tours & Food Walks)</option>
  <option value="5">Boat Trips</option>
  <option value="5">Boat Trips</option>
  <option value="5">Boat Trips</option>
  <option value="6">Short Tours (Half Day tours/Walking Tours/Day Excursions)</option>
  <option value="6">Short Tours (Half Day tours/Walking Tours/Day Excursions)</option>
  <option value="6">Short Tours (Half Day tours/Walking Tours/Day Excursions)</option>
  <option value="7">Weekend Gateways</option>
  <option value="7">Weekend Gateways</option>
  <option value="7">Weekend Gateways</option>                      </select>

  

但我需要显示以下输出:

<select name="tour_category[]" multiple="multiple" style="height:200px;">
  <option value="1" selected>Family</option>
  <option value="2" selected>Religion & Spirituality</option>
  <option value="3" selected>Wildlife</option>
  <option value="4">Cuisine (Food Tours & Food Walks)</option>
  <option value="5">Boat Trips</option>
  <option value="6">Short Tours (Half Day tours/Walking Tours/Day Excursions</option>
  <option value="7">Weekend Gateways</option>
</select>

2 个答案:

答案 0 :(得分:1)

如果要实现此目标,建议您使用for循环或映射显示option标签,并从映射的数组中删除重复项。您可以使用Set在ES6中实现此目标。

因此,假设您具有以下代码:

const array = ['Family', 'Family', 'Wildelife', 'Wildlife'];
const uniqueSet= new Set(array);
const uniqueArray = [...uniqueSet];

//the new array will be ['Family', 'Wildlife']

答案 1 :(得分:1)

在选择代码中添加一个属性id =“ tour_category”,然后尝试

$(document).ready( function(){
    var a = new Array();
    $("#tour_category").children("option").each(function(x){
        test = false;
        b = a[x] = $(this).val();
        for (i=0;i<a.length-1;i++){
            if (b ==a[i]) {
               test =true;
            }
        }
        if (test) {
           $(this).remove();
        }
    })
});