Javascript 使用jquery删除所选选项时出现问题

Javascript 使用jquery删除所选选项时出现问题,javascript,jquery,Javascript,Jquery,我正在为一个系列设计一些产品过滤器。过滤器是选择框中的选项。现在我试图实现,当选择“全部”选项时,它会删除所有其他选择的选项 这是密码 <select class="coll-filter" id="select-1"> <option value="" class="test">All</option> {% for tag in tags %} {% if current_tags contains tag %} <

我正在为一个系列设计一些产品过滤器。过滤器是选择框中的选项。现在我试图实现,当选择“全部”选项时,它会删除所有其他选择的选项

这是密码

  <select class="coll-filter" id="select-1">
    <option value="" class="test">All</option>
    {% for tag in tags %}
    {% if current_tags contains tag %}
    <option value="{{ tag | handle }}" selected class="test2">{{ tag }}</option>
    {% elsif collection.all_tags contains tag %}
    <option value="{{ tag | handle }}" class="test2">{{ tag }}</option>
    {% endif %}
    {% endfor %}
  </select>

这样,它将删除选中的第一个选项的选择,但不会删除第二个选项,因此它似乎只在第一个选中的选项上触发。知道我做错了什么吗?

我不确定您现有的代码是否也适用于第一个选项。因为更改事件发生在选择元素上,而不是选项上

我已经为您的代码应用了常规更改,现在您可以看到,当“全部”被选中时,所有其他的都将被取消选中

$(文档).ready(函数(){
showResults();
});
函数showResults(){
var期权=[];
$.each($(“#选择-1选项:选定”),函数(){
options.push($(this.val());
});
警报(“您已选择选项-”+选项。加入(“,”));
}
$('#select-1')。更改(函数(){
如果($('#select-1选项[value=all]')。是(':selected')){
警惕(“我在这里”);
//$('#select-1')。查找(“.test2”)。删除(':selected');
//$('select-1 option[value=all]')。attr('selected','selected');
$('select-1').val('all');
}否则{
showResults();
}
})

按控制键(Ctrl)选择多个值:

全部的 1. 2. 3.
也许你可以用这个

$('#select-1 option').change(function(){
   if($(".test").is(':selected')){
  $('#select-1').children...
您可以将“-1”设置为
All
选项的值,并按如下操作:

$('#select-1').change(function() {
if($(this).val()== "-1")
  $(this).find('option').not($('.test')).removeAttr("selected");
});

如果我的答案对您有所帮助,请接受并放弃投票,以帮助其他程序员在遇到相同问题时找到解决方案。大多数程序员看到的答案都是被接受或被投票赞成的。
$('#select-1').change(function() {
if($(this).val()== "-1")
  $(this).find('option').not($('.test')).removeAttr("selected");
});