jQuery で要素を無効または有効にする最適な方法は何ですか: ブール属性の prop() と attr() の比較

Susan Sarandon
リリース: 2024-10-19 19:12:30
オリジナル
765 人が閲覧しました

What's the Optimal Method for Disabling and Enabling Elements with jQuery: prop() vs. attr() for Boolean Attributes?

jQuery を使用して要素を効果的に無効化および有効化する方法: attr() と prop() の違いを理解する

問題:

最初は入力を無効にし、リンクをクリックしたときに入力を有効にしようとしていますが、現在の jQuery ソリューションは機能しません。

HTML:

<code class="html"><input type="text" disabled="disabled" class="inputDisabled" value=""></code>
ログイン後にコピー

jQuery:

<code class="javascript">$("#edit").click(function(event){
   event.preventDefault();
   $('.inputDisabled').removeAttr("disabled")
});</code>
ログイン後にコピー

原因:

削除にremoveAttr()を使用しています。 「disabled」属性を使用できますが、このアプローチには、特に「disabled」のようなブール属性の場合に制限があります。

解決策: attr() の代わりに prop() を使用する

ブール属性の場合は、attr() の代わりに prop() メソッドを使用することをお勧めします。このメソッドは、要素の基になるプロパティ値を明示的に変更します。これは、より効率的で、ブール属性に適しています。

更新された jQuery:

<code class="javascript">$("#edit").click(function(event){
   event.preventDefault();
   $('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});</code>
ログイン後にコピー

理由ブール属性の attr() よりも prop() を使用しますか?

  • 一貫性: prop() は一貫してプロパティ値を設定しますが、attr() は予期しない動作を引き起こす可能性があります。
  • 精度: prop() は実際のプロパティ値を取得して設定しますが、attr() は属性に基づいて別の値を返すか、設定することがあります。
  • 効率: prop() は、属性を関与させずにプロパティを直接変更するため、ブール属性に対してより効率的です。

注: 以前の jQuery バージョンでは3.0 では、ブール属性の RemoveAttr() も、対応するプロパティを false に設定します。この動作は後のバージョンでは非推奨となり、ブール属性に prop() を使用する重要性が強調されています。

以上がjQuery で要素を無効または有効にする最適な方法は何ですか: ブール属性の prop() と attr() の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート