当我取消选中此选项时,我想从选项元素中删除“selected”属性。我不想让价值虚假或任何东西......我只是想删除这个属性。我的代码就像
$(function() {
$("#deployselect").multiselect({
click: function( event, ui ) {
if(ui.checked==false){
$("#deployselect option[value='"+ui.value+"']").removeAttr("selected");
}
}
});
});
我生成的HTML就像这样
<option value="68" selected>A1</option>
<option value="49" selected>A2</option>
<option value="69" selected>A3</option>
所以即使我把“attr”或“prop”弄错也不行。 :(
答案 0 :(得分:13)
如果您想取消选择它,请更改以下行:
$("#deployselect option[value='"+ui.value+"']").removeAttr("selected");
到
$("#deployselect option[value='"+ui.value+"']").prop("selected", false);
(假设jQuery 1.6或更高版本;对于早期版本,请将prop
更改为attr
。)
将HTML解析为DOM后,option
element已a property called selected
从HTML中的selected
属性获取其初始值(默认为false
) 。所以一旦你处理了DOM元素,你就会处理一个布尔属性,而不再是一个属性了。
答案 1 :(得分:0)
一个简单的选项是将选择器值设置为空,以便所有选中的列表都将取消选中
$("#deployselect").val([]);