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