首页 > 代码库 > jQuery.data()

jQuery.data()

data()函数用于在当前jQuery对象所匹配的所有元素上存取数据

 

参数描述
key可选/String类型指定的键名字符串。
value可选/任意类型需要存储的任意类型的数据。
objectObject类型指定的对象,用于封装多个键值对,同时存储多项数据。

实例一:

$("#btn1").click(function(){

      $("div").data("greeting", "Hello World");   //  向被选元素附加数据

});

$("#btn2").click(function(){

         alert($("div").data("greeting"));             //   获取数据,获取键为"greeting"的值,应该为Hello World

});

 

实例二:

  testObj=new Object();
  testObj.greetingMorn="Good Morning!";
  testObj.greetingEve="Good Evening!";

$("#btn1").click(function(){
    $("div").data(testObj);
  });

$("#btn2").click(function(){
    alert($("div").data("greetingEve"));        // 输出"Good Evening!"
  });

 

实例三:

以下面这段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()