2

これをオフにすると、option 要素から「selected」属性を削除したいと考えています。値を false にしたりしたくありません...このプロパティを削除したいだけです。私のコードは

$(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」をfalseにしても機能しません。:(

4

2 に答える 2

14

選択を解除したい場合は、次の行を変更します。

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

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

実例| ソース

(jQuery 1.6 以降を想定しています。それ以前のバージョンの場合は、に変更propしてattrください。)

HTML が DOM に解析されると、option要素にはと呼ばれるプロパティselectedがあり、HTMLの属性から初期値を取得しselectedます (デフォルトはfalse)。したがって、DOM 要素を扱うようになると、もはや属性ではなくブール型のプロパティを扱うことになります。

于 2012-12-13T10:44:25.700 に答える