jQuery data是一個重要的方法,它為開發者提供了一種在元素上存儲數據的方法。使用 jQuery data 方法,開發者可以輕松地在DOM元素上存儲數據,并且可以根據需要在代碼中訪問這些數據。
下面是 jQuery data 的一部分源代碼:
jQuery.extend({ data: function(elem, name, data) { return jQuery.data(elem, name, data); }, removeData: function(elem, name) { return jQuery.removeData(elem, name); } }); jQuery.fn.extend({ data: function(key, value) { var i, name, data, elem = this[0], attrs = elem && elem.attributes; // 如果沒有提供 key,返回整個數據集 if (key === undefined) { if (this.length) { data = jQuery.data(elem); if (elem.nodeType === 1 && !jQuery._data(elem, "parsedAttrs")) { i = attrs.length; while (i--) { if (attrs[i]) { name = attrs[i].name; if (name.indexOf("data-") === 0) { name = jQuery.camelCase(name.slice(5)); dataAttr(elem, name, data[name]); } } } jQuery._data(elem, "parsedAttrs", true); } } return data; } } });
在第一段代碼中,我們可以看到 jQuery 方法擴展中的 data 和 removeData 函數。這兩個函數是 jQuery 中關于操作 數據 的核心函數。這里的 data 函數是對下面的 data 函數的一個簡單的封裝,可以在全局環境中使用。
在第二段代碼中,我們看到了 jQuery.fn.extend 函數,這里是為 jQuery 對象添加方法。通過這種方式,我們可以很方便地擴展 jQuery 對象的功能。在這個例子中,我們為 jQuery 對象添加了 data 函數。如果沒有提供 key 參數,則會返回整個數據集,否則會返回數據集中 key 對應的值。