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

我最近一直在各种HTML元素中使用title标签在DOM中以JSON格式存储数据。 这是一个坏方法(我假设它是)?实现这一点的正确方法是什么,适用于jQuery?我的意思是“运作良好”
$("myButton").click(function (e) {
     var myData;
     eval("myData=" + $(this).attr("title"));
});
工作得很好,但我再次假设有一个更好的方法来做到这一点没有? PS:BTW HTML元素的标题标签实际上如何工作?我似乎无法找到它实际上最终被使用的地方? PSS:我还可以获得基于jQuery和非jQuery的响应吗? (抱歉要挑剔)     
已邀请:
eval("myData=" + $(this).attr("title"));
这几乎是打击你的法律理由! (J / K) 您应该使用自己的命名空间对象来“全局”存储数据。在这种情况下,全局只表示应用程序代码中的全局,而不是使用
global object
(浏览器中的
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()     
在您的示例中,我建议执行以下操作,但不会使您暴露于'eval'的安全风险:
myData = JSON.decode($(this).attr("title"));
通常,这是保存非安全数据的有效方法。您还有许多其他选项: 使用JQuery的.data()方法: myData = $ this.data(“foo”); 在HTML5中,您现在可以使用自定义数据属性(例如“”)作为任何元素的属性。 http://html5doctor.com/html5-custom-data-attributes/ 如果您知道本地存储可用,则可以使用本地存储。 http://dev.w3.org/html5/webstorage/ 您可以在Jquery之上使用Backbone.js为您提供一种更抽象的方式来处理您的数据作为模型。 http://documentcloud.github.com/backbone/     
使用jquery数据()   jQuery.data()方法允许我们   将任何类型的数据附加到DOM   元素以一种安全的方式   循环引用,因此是免费的   从内存泄漏。 jQuery确保了这一点   DOM元素时删除数据   通过jQuery方法删除,和   当用户离开页面时。我们可以   为a设置几个不同的值   单个元素并检索它们   后来:
jQuery.data(document.body, 'foo', 52);
    
在jQuery世界中,通常认为使用元数据插件是一种最佳实践,因为它是一个官方的jQuery插件,并且还支持HTML5数据属性。有关更多信息,请查看此http://docs.jquery.com/Plugins/Metadata/metadata     

要回复问题请先登录注册