jQuery数据赋值解析

article/2025/3/16 7:48:30

作者:Jiang, Jinlin

在我们使用jQuery中,会用到$(element).data()方法存取赋值到元素上的数据。通过该方法,我们每次通过selector获取该元素时,总能获取其赋值的数据。今天,我们就来看看jQuery是如何实现的。

首先,我们先从data方法看起:


data方法接受两种参数形式,第一种通过key,value形式将数据赋值于元素之上。第二种通过key形式获取赋值的数据。(其中,如果key为空则导出所有key-value map)

通过data方法不但可以获取通过data本身传入的数据,也可以直接获取元素上直接[data-*]形式赋值的数据。接下来,就让我们看一看jQuery的源代码实现(我会在代码中进行标注,当然如果你不愿意看细节,之后会有一个图示来标示jQuery的数据赋值):


jQuery.fn.extend({

         data: function( key, value ) {

                   var i, name, data,

                            elem = this[0],

                            // 如果存在元素则获取它的attributes属性

                            attrs = elem && elem.attributes;

 

                   // Special expections of .data basically thwart jQuery.access,

                   // so implement the relevant behavior ourselves

 

                   // Gets all values

                   // 如果没有设定key,则将元素包含数据全部导出

                   if ( key === undefined ) {

                            if ( this.length ) {

                                     // 获取元素数据,之后会进入分析

                                     data = jQuery.data( elem );

 

                                     // nodeType属性用于获取类型,其中1DOM元素类型。因而其只会返回dom元素赋值的数据

                                     // _data为内部使用方法,之后将会详细介绍

                                     if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {

                                               i = attrs.length;

                                               while ( i-- ) {

 

                                                        // Support: IE11+

                                                        // The attrs elements can be null (#14894)

                                                        if ( attrs[ i ] ) {

                                                                 name = attrs[ i ].name;

                                                                 // 检查是否存在以data-开头的属性

                                                                 if ( name.indexOf( "data-" ) === 0 ) {

                                                                           // 使用驼峰法表示属性名,例如data-user-mail,将会被转成userMail

                                                                           name = jQuery.camelCase( name.slice(5) );

                                                                           // 获取[data-*]值并赋值数据

                                                                           dataAttr( elem, name, data[ name ] );

                                                                 }

                                                        }

                                               }

                                               // 标示该元素已经获取了[data-*]值,之后添加的


http://chatgpt.dhexx.cn/article/FxOKYQoh.shtml

相关文章

给div赋值 html,jquery给div赋值的示例

jquery给div赋值的示例 发布时间:2020-11-30 11:44:03 来源:亿速云 阅读:120 作者:小新 小编给大家分享一下jquery给div赋值的示例,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!j…

jQuery取值和赋值的基本方法

一、.html() 获取集合中第一个匹配元素的HTML内容,也可以往匹配到的元素中写入内容。 如果写入的内容为标签,会被解析到页面中。 二、.text() 得到匹配元素集合中每个元素的合并文本,包括他们的后代 写入的标签不会被页面解析 三、.size() 返回的jQu…

Lora协议整理(第2汇报)

帧结构: 详细帧结构: 抓到的数据: LoraServer的搭建: 关于开源的lorawan server目前比较火的是brocaar的go语言版本的 https://github.com/brocaar/loraserver 另一个是gotthardp 的erlang语言的 https://github.com/gotth…

LoRaWAN与LoRa的区别!

LoRaWAN与LoRa的区别 在物联网技术快速发展的今天,NB-IoT、LoRa、SigFox等技术名词经常进入我们的视野中,对于刚刚接触物联网领域的人来说,在一大堆名词面前可能会混淆。面对类似于LoRa和LoRaWAN这样容易混淆的名词,其实只要系统…

Lora通信应用开发

概述: 1.了解Lora技术的基本知识 2.了解通信协议用途 3.掌握Lora模块SPI配置方法 4.掌握简单的Lora模块数据对传方法 5.掌握Lora通讯协议使用方法 一、什么是LoRa LoRa(Long Range Radio,远距离无线电)是一种基于扩频技术的…

常用的LoRa网络结构

LoRa应用中组网方式非常多,且很多供应商根据需求制定了相应的协议(网络层和应用层),根据是否支持LoRaWAN协议可以分为LoRaWAN协议网络和私有协议网络两大类。在中国的LoRa生态中有大量的用户使用私有协议,而在欧美等发达国家的LoRa市场上绝大…

【ESP32最全学习笔记(协议篇)——2.ESP32 LoRa】

关于本教程: ESP32 基础篇 1.ESP32简介 2.ESP32 Arduino 集成开发环境 3.VS 代码和 PlatformIO 4.ESP32 引脚 5.ESP32 输入输出 6.ESP32 脉宽调制 7.ESP32 模拟输…

LoRa是什么

LoRa是什么 LoRa是什么LoRa调制LoRa调制参数LoRa WAN 网络LoRa技术框图LoRa WAN网络组成LoRa终端设备划分成A/B/C三类 LoRa是什么 LoRa 是LPWAN通信技术中的一种 LoRa 是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案 LoRa调制 LoRa 采用 CSS线性扩频…

LoRaWAN协议

LoRaWAN协议定义了使用LoRa的MAC层规范,处在协议应用层与物理层中间的实现规范。LoRa没有开放的规范化物理层协议,而LoRa物理模块的接口上很多参数都可以进行配置,LoRaWAN同时对一些数据发送格式做了相应的限制。 物理层消息结构 上行带有CRC…

【LoRaWAN协议的扩展与衍生】

文章目录 LoRaWAN协议的扩展与衍生一、LoRaWAN中继Relay协议1.Relay协议强制需求2.Relay入网及数据交互流程3.唤醒方式 二、阿里巴巴D2D协议1.场景要求2.协议机制3.D2D的特点 三、智能家居YoLink协议1.YoLink通信协议架构及特点2.YoLink网络通信模式3.D类设备的唤醒和控制4.YoL…

什么是LoRa?

1.LoRa概述: 智能物联网应用改善了我们的生活方式,并且正在解决城市和社区面临的一些挑战:气候变化,污染控制,自然灾害预警和生命急救。企业也通过改进运营和效率以降低成本获取效益。这种无线射频技术正在应用到汽车…

物联网Lora组网方式及私有协议的应用

本篇文章全程干货,可能有点枯燥, 如果耐心看完,保证不会让大家失望! 文章内容都是无际单片机编程团队的几年实战经验,全网独家。 本课程不仅适用于Lora技术,FSK、zigbee、OOK等无线通讯都可以支持,大家可…

LoRaWAN网络协议与LoRa私有协议相比有哪些优势

物联网很多应用现在都普遍用了LoRa技术的芯片,然而没有使用LoRaWan网络协议。经过调查发现,没有使用LoRaWAN网络协议的原因有:应用点数少、规模小,有的是因为LoRaWAN成本高,技术要求高,短时间内无法掌握&am…

LoRa协议说明

ClassA 所有终端设备需实现Class A物理层Uplink Message由终端设备经过一个或多个网关发送至网络服务端 UplinkMessage使用LoRa无线报文的显示模式,即包含PHDR和PHDR_CRC头。整个报文的完整性由CRC检验码保证。PHDR,PHDR_CRC和负载的CRC字段均自动由无线射频收发器插…

LoRa协议在Arduino上的应用——原理及代码分析(二)

目录 LoRa调制与解调模式代码分析主程序开始发包Packet Structure数据传输时间重置FIFO地址与payload长度结束发包中断源 ReceiverparsePacket是否存在数据包数据读取RSSI 前述文章链接在此~~ LoRa协议在Arduino上的应用——原理及代码分析(一). LoRa调…

【从0到1搭建LoRa物联网】12、LoRa网关与平台通讯协议

系列文章: 【从0到1搭建LoRa物联网】1、LoRa物联网的架构 【从0到1搭建LoRa物联网】2、终端设备开发方式 【从0到1搭建LoRa物联网】3、国产LoRa终端ASR6505软硬件 【从0到1搭建LoRa物联网】4、国产LoRa终端ASR6505普通GPIO 【从0到1搭建LoRa物联网】5、国产LoRa终端…

物联网LoRa系列-11:LoRa终端--基于物理层协议的PingPong应用程序的软件架构

至此,我们已经搭建好LoRa终端的软硬件开发环境,接下来,将解构和实现LoRa终端的应用程序。 LoRa终端的应用程序,(1)可以直接基于LoRa的物理层协议(LoRa芯片实现);&#x…

自有协议的LoRa模块应用

LoRa主要是由SemTech公司开发并拥有专利的物理层的调制技术。基于LoRa,LoRa联盟也开发和开放了的LoRaWAN的协议,用于组建网络和实现应用。Ali在LoRaWAN基础上又开发了LPWAN的物联网应用平台,这些都需要遵从专有的LoRa芯片,专门协议…

LoRa协议在Arduino上的应用——原理及代码分析(一)

目录 LoRa简介硬件设备源码分析Sender 两种调制方式 LoRa简介 详细的LoRaWAN协议解析在这里 本文主要介绍LoRa在Arduino上的实现过程,从而学习LoRa协议的实现。 硬件设备 包括传统的GFSK调制技术以及LoRa(远程)扩频技术 这里说一下啥叫LoR…

物联网LoRa系列-25:LoRa终端--LoRaWAN协议简介与LoRa WAN终端软件选择

前言: 从本篇文章开始: 从通信节点的角度度看,将从Lra终端对点对通信转到LoRa终端与LoRa网关的通信、LoRa终端与LoRa云服务器的通信; 从协议栈的角度看,将从物理层上升到LoRa的MAC层, 即LoRaWAN&#xf…