jquery checkedプロパティの追加と削除について(.attr('checked',true)の失効問題を解決)

806 ワード

一、問題が発生した場合:
$(":radio").removeAttr('checked');
 $(":radio").attr('checked','true');

実際の問題:removeAttr()を使用してradioのcheckedプロパティを削除した後、attr()を使用して再追加しても機能しません.
二、解決:
方法1:
$(":radio").removeAttr('checked');
$("input:radio").prop('checked','true');

すなわちprop()を使用して、この属性を再構成することができる.注意:checked、selected、disabledなどのtrueとfalseの2つの属性を持つ属性はprop()を使用し、その他はattr()を使用する.
方法2:
$(':checkbox').each(function(){
    this.checked=true;
});

attrは無効ですか?checkedはプロトタイプオブジェクトのプロパティに属するためです.attrはremoveプロトタイプオブジェクトでエラーが発生します.プロトタイプオブジェクトとは、自身が持参したもので、削除できません.propはこのエラーを無視します.attrは通常の非プロトタイプオブジェクト(除去可能)を操作します.jsのdomオブジェクトプロパティは任意に追加できます.