如何使用jquery从选项中删除“selected”属性

时间:2012-12-13 10:41:17

标签: javascript jquery jquery-ui jsp

当我取消选中此选项时,我想从选项元素中删除“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”弄错也不行。 :(

2 个答案:

答案 0 :(得分:13)

如果您想取消选择它,请更改以下行:

$("#deployselect option[value='"+ui.value+"']").removeAttr("selected");

$("#deployselect option[value='"+ui.value+"']").prop("selected", false);

Live Example | Source

(假设jQuery 1.6或更高版本;对于早期版本,请将prop更改为attr。)

将HTML解析为DOM后,option elementa property called selected从HTML中的selected属性获取其初始值(默认为false) 。所以一旦你处理了DOM元素,你就会处理一个布尔属性,而不再是一个属性了。

答案 1 :(得分:0)

一个简单的选项是将选择器值设置为空,以便所有选中的列表都将取消选中

$("#deployselect").val([]);