data() 函数用于在当前jQuery对象所匹配的所有元素上存取数据。
通过data()函数存取的数据都是临时数据,一旦页面刷新,之前存放的数据都将不复存在。
该函数属于jQuery对象(实例)。如果需要移除通过data()函数存放的数据,请使用removeData()函数。
语法:
//用法一: $(selector).data([key,[,value]]) //用法二: $(selector).data(object)
示例:
<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]