使用 jQuery 存储数据有优势吗?

2023-12-13

我知道更多关于 jQuery 如何存储数据的信息。

执行其中一项或另一项是否有任何优势:

$('#editCity').data('href', "xx");
var a = $('#editCity').data('href');

or

$('#editCity').attr('data-href', "xx");
var a = $('#editCity').attr('data-href');

还有一个相关问题。

如果我有这个:

var modal = { x: 'xx', y: 'yy' };

我也可以使用 .data( .. ) 存储它吗?


直接在 DOM 元素上存储属性值是有风险的,因为可能会发生内存泄漏。如果你无论如何都在使用 jQuery,.data()机制是一种跟踪每个元素信息的奇妙而安全的方法。它也允许存储任意 JavaScript 数据结构,而不仅仅是字符串。

edit— 当您的 HTML 标记包含data-foo属性,当访问键时会隐式读取这些属性。也就是说,如果您的 HTML 如下所示:

<div id="div1" data-purpose="container">

然后在 jQuery 中:

alert( $('#div1').data('purpose') ); // alerts "container"

此外,jQuery还会对属性值进行一些“智能”分析。如果一个值看起来像一个数字,jQuery 将返回一个数字,而不是字符串。如果它看起来像 JSON,它会为您反序列化 JSON。

edit— 这里有一个好技巧:在 Chrome 开发者控制台(“控制台”视图)中,您可以键入 JavaScript 表达式并对其进行求值。评估始终在您正在处理的页面的上下文中完成。如果您从“元素”视图中选择一个元素,则在控制台中 JavaScript 符号$0将引用所选的 DOM 元素。因此,您始终可以通过转到控制台并键入以下内容来检查元素的“数据”映射:

$($0).data("something");

The .data()函数,如果不带参数调用,则返回all键/值对:

$($0).data();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery 存储数据有优势吗? 的相关文章

随机推荐

  • PHP 根据另一个数组中的文本重复项求和数组值

    我有两个数组 两个数组的计数长度始终相同 第一个具有与整数混合的双精度值 第二个具有文本 仅字符串 值 它们确实相关 所以我需要它们都保持有序 抱歉 没有可用的键 按设计 我需要对包含字符串的数组中重复的值进行求和 Example data
  • Visual Basic 如何读取 CSV 文件并在数据网格中显示值?

    我正在使用 VB 2005 如何打开 CSV 文件并读取列 行并在数据网格中显示值 CSV 文件示例 杰史密斯 电子邮件受保护 然后我想对每一行 即每个用户 执行一个操作 我该怎么做 正如你所知 我是一个新手 但很乐意学习 Thanks U
  • React - TypeError:无法读取未定义的属性“图像”

    所以我正在为一个副项目创建一个电子商务商店 但我遇到了一个问题 在主页上我有所有产品 并且我已经为产品详细信息创建了一条路线 当我点击其中之一时 它会获取 id 并应输出所有产品详细信息 我在 JSON 数组 data js 中有有关产品的
  • 使用具有多个条件的sql获取总和

    我的列中的数据为 Process Volume TAT 1 1 Pass 1 2 Fail 2 5 Fail 2 5 Pass 3 1 Pass 4 6 Fail 4 4 Pass 现在按流程分组 我想要体积总和 不考虑任何 TAT TAT
  • 对当前行号着色

    我在用global linum mode对于行号 如果当前行的行号用不同的颜色 和 或不同的背景 突出显示 那就太好了 有人知道如何实现这一目标吗 谢谢你 我从之前的回答中得出了这个答案Emacs 中的相对行号 因为它处理在 linum 格
  • 什么时候应该在 C# 4.0 中使用动态关键字?

    什么时候应该在 c 4 0 中使用动态关键字 c 4 0 中任何带有动态关键字的好例子可以解释其用法 只能使用动态不使用时会很痛苦 就像 MS Office 库一样 在所有其他情况下 应该避免它 因为编译类型检查是有益的 以下是使用动态的良
  • nuget 包中的 .targets 文件 - 如何将内容文件包含到构建中

    我有一个 nuget 包 例如 build SharedTargets targets content File cs SharedTargets targets 看起来像
  • Famo.us 引擎中提供哪些活动

    我想知道 Famo us 引擎对象可以订阅哪些事件 来自 Famo us大学 引擎还会发出某些事件 例如 预渲染 和 后期渲染 然而 由于这些事件的频繁发生 他们 仅应在绝对必要时使用 还有其他方便的引擎事件 即 调整大小 那么 引擎发出的
  • Azure 和 Node js __dirname

    可能它与 webpack memory fs 没有特别相关 但我得到了RangeError Maximum call stack size exceeded错误 请参阅下面的调用堆栈 我发现 那 dirname在 Azure webapp
  • 没有为类“Object?”定义运算符“[]”

    班图 萨亚 温图克 梅梅卡坎 玛萨拉 迪巴瓦 伊尼 import package cloud firestore cloud firestore dart class UserModel static const NUMBER number
  • 为什么 sizeof(std::string) 只有八个字节?

    Why is std string的大小 由下式确定sizeof std string yield 8 我认为应该超过8因为它必须有一个int sizeof int 8在我的机器上 用于给予的数据成员std string length an
  • 根据 R 中另一列的值将随机值分配给列

    我有一个数据集 其股票代码范围为 2 90214 大约有 3000 个唯一值 显然 2 到 90214 之间的一些值被跳过 我想转换这些股票代码 使它们的范围从1到3000 这样如果以前的股票代码是1234 那么每次出现这个数字时 都会分配
  • 如何更改数据库中的所有表以使用 AUTO_INCRMENT=1

    我的数据库中有大约 30 个表 table1 table2 table3 table4 table5 etc 我希望使用所有表AUTO INCREMENT 1 如何修改表格 以下是其中一张表的示例 DDL 我从来没有定义过AUTO INCR
  • 无法分配“>”:“Comment.user”必须是“MyProfile”实例

    你好 我知道我这里有两个问题 一个是一个SimpleLazyObject我可以用一种有点黑客的方式解决这个问题 另一个是 Comment user 必须是一个 MyProfile 我不知道如何解决这个问题 我认为在某种程度上 事情变得混乱了
  • ssh 和 sudo: pam_unix(sudo:auth): 对话失败,auth 无法识别 [用户名] 的密码

    我遇到了一个奇怪的行为 试图通过 ssh 使用无密码登录来运行 rsync 作为 sudo 这是我对数十台服务器所做的事情 我在连接到几个 Ubuntu 18 04 4 服务器时遇到了这个令人沮丧的问题 PREMISE 使用帐户 USER
  • Hibernate:拉动所有惰性集合的最佳实践

    我拥有的 Use Hibernate initialize within Transactional初始化惰性对象 start Transaction Hibernate initialize entity getAddresses Hib
  • 如何在 x86 程序集中正确索引数组

    我试图确保我理解 SI 和 DI 寄存器 我的汇编语言背景在某种程度上仅限于 6502 所以请耐心等待 我有一个简单的例子来说明如何使用 SI 作为简单的计数器 我有点担心我可能会滥用这个寄存器 mov si 0 set si to 0 m
  • Git 合并,同时放弃任何以前的更改(在本地存储库中或来自上次提交)

    在 Git 中 在合并期间 有没有一种方法可以告诉 git 在发生冲突时放弃本地更改并应用合并分支中的更改 我的意思是 如果有办法 那么我们可以像分支合并一样进行合并而不会发生冲突 在尝试合并之前 您可以自己放弃本地更改git reset
  • 如何在 Jetpack Compose 中向 TextField 添加不可编辑的后缀(后缀)?

    如何添加后缀TextField随用户输入文本流动 移动 的输入 With M3从1 1 0 alpha06你可以使用suffix属性 TextField value text onValueChange text it suffix Tex
  • 使用 jQuery 存储数据有优势吗?

    我知道更多关于 jQuery 如何存储数据的信息 执行其中一项或另一项是否有任何优势 editCity data href xx var a editCity data href or editCity attr data href xx