javascript - 在 DOM 中存储数据的正确方法是什么

标签 javascript asp.net jquery html dom

我最近一直在各种 HTML 元素中使用 title 标签,以在 DOM 中存储 JSON 格式的数据。

这是一个糟糕的方法吗(我假设是)?使用 jQuery 来完成这个工作的正确方法是什么?我所说的“运行良好”是指

$("myButton").click(function (e) {
     var myData;
     eval("myData=" + $(this).attr("title"));
});

工作得很好,但我再次假设有更好的方法来做到这一点,不是吗?

PS:顺便说一句,HTML 元素的标题标签实际上是如何工作的?我似乎无法找到它实际最终被使用的地方?

PSS:我还能获得基于 jQuery 和非 jQuery 的响应吗? (不好意思打扰了)

最佳答案

eval("myData=" + $(this).attr("title"));

这几乎是打你耳光的合法理由! (j/k)

您应该使用自己的命名空间对象来“全局”存储数据。在这种情况下,全局仅意味着您的应用程序代码中的全局对象,而不是使用全局对象(浏览器中的window)。

var my_application = {};

$('myButton').click(function() {
  my_application.myData = $(this).attr('title');
});

这当然是一个非常基本的策略。在您的特定情况下,您还可以使用 jQuery 的 .data() 方法将数据附加到 DOM 节点。

$('myButton').click(function() {
   $.data(this, 'myData', this.title);
});

引用:.data() , jQuery.data()

关于javascript - 在 DOM 中存储数据的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4506759/

相关文章:

c# - 如何停止浏览器存储用户在文本字段中输入的表单数据

html - 由于 CSS 类,DIV 不在 IE8 中显示

javascript - Handlebars (如果情况不工作)

javascript - 如何在nodejs中正确使用域

javascript - 为什么 Angular orderBy 自定义比较器不起作用?

javascript - 如何在编辑内容并将javascript变量传递给新输入的字段后将Django "forms.ModelForm"保存在数据库中

javascript - jQuery:访问(多).attr()

Java脚本;选择嵌套元素会引发 "not a function"错误

c# - 如何在代码隐藏中从 GridView 访问选定的 Boundfield 值

javascript - 从 HTML 字符串中提取数字然后附加到 URL