zoukankan      html  css  js  c++  java
  • jquery data()

     

    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代码为例:

    <divid="n1">
       
    <divid="n2">
           
    <ulid="n3">
               
    <liid="n4">item1</li>
               
    <liid="n5">item2</li>
               
    <liid="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]

    运行代码

     
     
  • 相关阅读:
    Golang服务器热重启、热升级、热更新(safe and graceful hot-restart/reload http server)详解
    如果清空Isilon cluster上的文件,Shadow Store和data reduction的统计信息也会一并清空么?
    合并从B站下载的分开的音频和视频
    使用Notepad++远程编辑WinSCP中打开的文本文件报错“file xxx does exist anymore”
    Leetcode 1143. 最长公共子序列(LCS)动态规划
    Leetcode 126 127 单词接龙i&ii
    如何在一个Docker中同时运行多个程序进程?
    dockerfile cmd使用
    Leetcode 160.相交链表
    Leetcode 912. 排序数组
  • 原文地址:https://www.cnblogs.com/ldq1996/p/7687386.html
Copyright © 2011-2022 走看看