jquery checkedプロパティの追加と削除について(.attr('checked',true)の失効問題を解決)
806 ワード
一、問題が発生した場合:
実際の問題:removeAttr()を使用してradioのcheckedプロパティを削除した後、attr()を使用して再追加しても機能しません.
二、解決:
方法1:
すなわちprop()を使用して、この属性を再構成することができる.注意:checked、selected、disabledなどのtrueとfalseの2つの属性を持つ属性はprop()を使用し、その他はattr()を使用する.
方法2:
attrは無効ですか?checkedはプロトタイプオブジェクトのプロパティに属するためです.attrはremoveプロトタイプオブジェクトでエラーが発生します.プロトタイプオブジェクトとは、自身が持参したもので、削除できません.propはこのエラーを無視します.attrは通常の非プロトタイプオブジェクト(除去可能)を操作します.jsのdomオブジェクトプロパティは任意に追加できます.
$(":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オブジェクトプロパティは任意に追加できます.