首頁 > web前端 > js教程 > 主體

使用 jQuery 停用和啟用元素的最佳方法是什麼:布林屬性的 prop() 與 attr()?

Susan Sarandon
發布: 2024-10-19 19:12:30
原創
707 人瀏覽過

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」這樣的布林屬性。

解決方案:使用 prop() 而不是 attr()

對於布林屬性,建議使用 prop() 方法而不是 attr()。此方法明確修改元素的底層屬性值,這對於布林屬性來說更加高效且合適。

更新了 jQuery:

<code class="javascript">$("#edit").click(function(event){
   event.preventDefault();
   $('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});</code>
登入後複製

為什麼prop() 優於 attr() 對於布林屬性?

  • 一致性: prop() 一致地設定屬性值,而attr() 可能會導致意外行為
  • 準確性: prop() 檢索並設定實際的屬性值,而attr() 可能會根據屬性傳回或設定不同的值。
  • 效率: prop() 對於布林屬性來說更高效,因為它直接修改屬性而不涉及屬性。

注意: 在 jQuery 之前的版本中到 3.0,布林屬性上的removeAttr() 也會將對應的屬性設為 false。此行為在後續版本中已被棄用,凸顯了使用 prop() 取得布林屬性的重要性。

以上是使用 jQuery 停用和啟用元素的最佳方法是什麼:布林屬性的 prop() 與 attr()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!