溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用jquery attr

發布時間:2021-11-11 09:37:29 來源:億速云 閱讀:174 作者:iii 欄目:web開發
# 怎么使用jQuery attr()

jQuery的`.attr()`方法是操作HTML元素屬性的核心函數之一。它既能獲取屬性值,也能設置屬性值,是DOM操作中不可或缺的工具。本文將詳細介紹其用法、常見場景和注意事項。

## 目錄
1. [基本語法](#基本語法)
2. [獲取屬性值](#獲取屬性值)
3. [設置單個屬性](#設置單個屬性)
4. [設置多個屬性](#設置多個屬性)
5. [特殊屬性處理](#特殊屬性處理)
6. [與prop()的區別](#與prop的區別)
7. [實際應用示例](#實際應用示例)
8. [注意事項](#注意事項)

---

## 基本語法

```javascript
// 獲取屬性
$(selector).attr(attributeName)

// 設置單個屬性
$(selector).attr(attributeName, value)

// 設置多個屬性
$(selector).attr({ 
  attribute1: value1,
  attribute2: value2 
})

獲取屬性值

通過傳遞屬性名作為參數獲取值:

// 獲取img的src屬性
const imgSrc = $('img#logo').attr('src');

// 獲取鏈接的target屬性
const linkTarget = $('a.external').attr('target');

注意:如果元素不存在或屬性未設置,返回undefined。

設置單個屬性

// 設置圖片src
$('img.thumbnail').attr('src', 'new-image.jpg');

// 設置disabled屬性
$('button.submit').attr('disabled', 'disabled');

設置多個屬性

使用對象形式批量設置:

$('input.text-field').attr({
  'placeholder': '請輸入內容',
  'maxlength': 50,
  'data-validate': 'required'
});

特殊屬性處理

布爾屬性

checked、disabled這類屬性建議使用.prop()

// 推薦方式
$('#checkbox').prop('checked', true);

// 也能用attr(但不推薦)
$('#checkbox').attr('checked', 'checked');

自定義data屬性

HTML5建議使用.data()方法:

// 獲取data-*屬性
const user = $('#profile').data('user-id');

// 等效于:
const user = $('#profile').attr('data-user-id');

與prop的區別

方法 作用對象 適用場景
.attr() HTML屬性 href, title, alt等
.prop() DOM屬性 checked, selected, disabled

示例對比

// 返回原始HTML值
$('input').attr('value'); 

// 返回當前DOM值(會隨用戶輸入變化)
$('input').prop('value');

實際應用示例

圖片懶加載

$('img.lazy').each(function() {
  const realSrc = $(this).attr('data-src');
  $(this).attr('src', realSrc);
});

表單驗證提示

$('form').submit(function() {
  if (!$('#email').val()) {
    $('#email').attr('title', '郵箱不能為空');
    return false;
  }
});

動態修改鏈接

$('a.locale').click(function() {
  const lang = $(this).attr('data-lang');
  $('html').attr('lang', lang);
});

注意事項

  1. 性能考慮:頻繁操作DOM會影響性能,建議批量修改

  2. 屬性名大小寫:HTML屬性不區分大小寫,但建議保持一致性

  3. SVG元素:部分SVG屬性需要使用attr()而非prop()

  4. 移除屬性:使用.removeAttr()方法

    $('div.tooltip').removeAttr('title');
    
  5. 回調函數:支持動態計算屬性值

    $('img').attr('src', function(i, oldSrc) {
     return oldSrc + '?timestamp=' + Date.now();
    });
    

通過靈活運用.attr()方法,可以高效地完成各種DOM屬性操作需求。建議結合具體場景選擇最合適的方法。 “`

注:本文實際約850字(含代碼示例),主要涵蓋jQuery attr()的核心用法和實用技巧。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女