jQuery-删除选择选项:单击时选择的属性

jQuery-删除选择选项:单击时选择的属性,jquery,Jquery,我正在处理一个模式对话框中弹出的多选。当对话框关闭时,我正在用填充,其中包含:所选选项中的文本。单击每个时,我希望淡出,相应的:selected变为unselected。除了取消选择之外,我的一切都正常工作 这是我的密码: $('.control-finished').click(function(){ $('ul.multiselect-dropdown-options-'+name+'').empty(); $('option:selected

我正在处理一个模式对话框中弹出的多选。当对话框关闭时,我正在用
  • 填充
      ,其中包含
      :所选
      选项中的文本。单击每个
    • 时,我希望
    • 淡出,相应的
      :selected
      变为unselected。除了取消选择
      之外,我的一切都正常工作

      这是我的密码:

      $('.control-finished').click(function(){
                  $('ul.multiselect-dropdown-options-'+name+'').empty();
                  $('option:selected', select).each(function(index, value) {
                      var livalue = $(this).attr('value');
                      $('ul.multiselect-dropdown-options-'+name+'').append('<li class="dropdown-option '+livalue+'">'+$(value).text()+'<!-- <a class="remove-option '+livalue+'"> -->x</li>');
                      $('li.dropdown-option').click(function(){
                          $(this).fadeOut(500, function() { $(this).remove(); });
                          $('option:selected', this).removeAttr('selected');
                      });
                  });         
      
              });
      
      $('.control finished')。单击(函数(){
      $('ul.multiselect下拉选项-'+name+'').empty();
      $('option:selected',select).each(函数(索引,值){
      var livalue=$(this.attr('value');
      $('ul.multiselect下拉选项-'+name+'').append('
    • '+$(value.text()++'x
    • '); $('li.dropdown option')。单击(函数(){ $(this.fadeOut(500,function(){$(this.remove();}); $('option:selected',this).removeAttr('selected'); }); }); });

      非常感谢您的帮助

      我相信你的问题出在这一行:

      $('option:selected', this).removeAttr('selected');
      
      也就是说,findalloption:selected是li.dropdown-option的后代。但是你在淡出后删除了这些,所以它当然找不到

      因此,您需要更改上面jQuery函数中的第二个参数。(此选项)添加到要在其下搜索的实际父dom元素

      我不知道你的HTML是什么样子的,所以我无法为你提供更详细的解决方案

          $('option:selected').attr('selected', '');
      
      或用于单个选择框

          $('#selectboxID').attr('selected', '-1');
      
      但是,您实际上在每个函数中绑定了一个click函数,并且在同一个“this”作用域上使用了remove()之后,尝试删除“this”作用域中选择框上的选定值?

      尝试以下操作:

      $('select')。更改(函数(){
      $('ul').empty();
      $('option:selected')。每个(函数(){
      $('
    • ).text($(this.val()).appendTo($('ul')); }); }); $('ul')。在('click','li',function()上{ $('option[value=“”+$(this.text()+“]).prop('selected',''); $(this.remove(); });
      我也有同样的问题 我试过了

      通过更改“选择框”值

      $('#selectboxID').val(newVal);
      

      但即使值为空,选定的属性仍然存在 我最后做了以下操作来删除它

      $('#selectboxID').html($('#selectboxID').html().replace('selected',''));
      

      你可以试试这个。希望这对你有帮助

        var $element = $("#DropDownList1");
          $element.change(function () {
             $element.find('option').removeAttr('selected')
             .filter("[value=" + this.value + "]")
             .attr("selected", "selected");
             console.log(this.value);
          });
      

      干杯。

      这对我很有效,在我们需要操作Ajax数据的情况下也很有效

      $('#id option:selected').removeAttr('selected');
      

      您可以尝试此选项选择器

      $('#selectselector > option[selected="selected"]').removeAttr('selected');
      

      我认为您无法删除:选定状态。。也可以,但仍会在选择框中以可视方式选择该项目。也许你可以选择不同的选项(即第一个)?哇,处理列表框有很多奇怪之处。总之,看看我下面的帖子。使用.prop('selected','')是最好的选择。
      $('#id option:selected').removeAttr('selected');
      
      $('#selectselector > option[selected="selected"]').removeAttr('selected');