首頁  >  文章  >  web前端  >  jQuery.data() 函數用法詳解

jQuery.data() 函數用法詳解

巴扎黑
巴扎黑原創
2017-07-08 11:29:262779瀏覽

data()函數用於在目前jQuery物件所匹配的所有元素上存取資料。

透過data()函數存取的資料都是暫存數據,一旦頁面刷新,先前存放的資料都將不復存在。

此函數屬於jQuery物件(實例)。如果需要移除透過data()函數存放的數據,請使用removeData()函數。

語法

data()函數有以下兩種用法:

用法一:

jQueryObject.data( [ key [, value ] ])

以指定的鍵名key存取資料。如果指定了value參數,則表示以鍵名key存放值為value的資料;如果沒有指定value參數,則表示讀取先前以鍵名key存放的資料;如果沒有指定任何參數,則以物件形式傳回之前儲存的所有資料。

用法二:

jQueryObject.data( object )

以物件形式同時傳入任意多個key-value形式的數據,物件的每個屬性就是鍵名key,屬性值就是value。

注意:data()函數的所有"儲存資料"操作針對目前jQuery物件所匹配的每一個元素;所有"讀取資料"操作只針對第一個匹配的元素。

參數

請根據前面語法部分所定義的參數名稱尋找對應的參數。

參數 描述

key 可選/String類型指定的鍵名字串#。

value 可選/任意類型需要儲存的任意類型的資料。

object Object類別型指定的對象,用於封裝多個鍵值對,同時儲存多項資料。

傳回值

data()函數的傳回值是任意類型,傳回值的型別取決於目前data()函數執行的是"儲存資料"操作還是"讀取資料"操作。

如果data()函數執行的是"儲存資料"操作,則傳回目前jQuery物件本身;如果是"讀取資料"操作,則傳回讀取到的資料。

如果目前jQuery物件符合多個元素,讀取資料時,data()函數只以其中第一個符合的元素為準。

如果執行data(key)函數(僅傳入一個參數key)時找不到對應的數據,則傳回undefined。如果執行data()函數(不帶任何參數)時找不到對應的數據,則傳回一個空的物件(沒有任何屬性)。

範例&說明

以下面這段HTML程式碼為例:

<div id="n1">
    <div id="n2">
        <ul id="n3">
            <li id="n4">item1</li>
            <li id="n5">item2</li>
            <li id="n6">item3</li>
        </ul>
    </div>  
</div>

我們寫如下jQuery程式碼:

var $li = $("li");
// 同时向所有的li元素存储数据
$li.data("name", "CodePlayer");
$li.data("desc", "专注于编程开发技术分享");
$li.data("url", "http://www.365mini.com/");
var $n5 = $("#n5"); // 通过n4、n5、n6都可以读取数据
//  返回键值name所对应的数据
document.writeln( $n5.data("name") ); // CodePlayer
// 以对象形式返回所有的数据
var obj = $("#n6").data();
for(var i in obj){
    document.writeln( i + "=" + obj[i] + "<br>");   
}
/*输出:
name=CodePlayer
desc=专注于编程开发技术分享
url=http://www.365mini.com/
*/
//移除掉n4上存储的键名为name的数据
$("#n4").removeData("name");
// 虽然$li匹配3个li元素,但是读取数据只以第一个li元素n4为准,因此返回undefined
document.writeln( $li.data("name") ); // undefined
var object = { 
        name: "张三",
        age: 18,
        score: [87, 23, 56],
        options: { gender: "男", address: "水帘洞" }
    };
// 同时向所有的div元素以对象形式设置多个key-value数据
// value值可以是任意类型的数据,包括数组、对象等
$("div").data( object );
var $n2 = $("#n2"); // 通过n1、n2都可以读取数据
document.writeln( $n2.data("name") ); // 张三
document.writeln( $n2.data("score") ); // 87,23,56
document.writeln( $n2.data("options") ); // [object Object]

以上是jQuery.data() 函數用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn