2

当我取消选中此选项时,我想从选项元素中删除“选定”属性。我不想让价值为假或任何东西......我只想删除这个属性。我的代码就像

$(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”设为假,它也不起作用。:(

4

2 回答 2

14

如果要取消选择它,请更改此行:

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

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

实例| 来源

(假设 jQuery 1.6 或更高版本;对于早期版本,更改propattr.)

一旦 HTML 被解析到 DOM 中,option元素就会有一个名为selected的属性,该属性从 HTML 中的属性获取其初始值selected(默认为false)。因此,一旦您处理 DOM 元素,您将处理的是布尔属性,而不是属性。

于 2012-12-13T10:44:25.700 回答
0

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

$("#deployselect").val([]);
于 2020-02-05T06:01:53.923 回答