JavaScript使用自定义属性作为持久性机制

时间:2011-12-14 13:35:19

标签: javascript dom

我需要保持我的Html控件的状态(我有一个多选列表,我需要保留所选项目的信息),我正在使用自定义属性,如:

// put
$("#element").attr("selectionState", "value");

// get
alert($("#element").attr("selectionState"));

虽然它有效但我想知道它是否是一种安全的方法,如果没有,你会如何解决这个问题呢?

我能看到的唯一风险是 - 另一个脚本创建具有相同名称的自定义属性,这是我可以管理的。

1 个答案:

答案 0 :(得分:3)

我建议改用.data()

$('#element').data('selectionState', 'value');

它绝对更安全,因为它将数据完全保存在JavaScript中,而不是DOM元素中的“属性”映射。罪“.data()”是所有JavaScript,你可以存储任何东西,包括函数和闭包。 (我想你也可以用“.attr()”做到这一点,但它在IE中风险很大,至少在旧版本中,对于DOM和JScript来说,内部存储管理方式完全不同。)

您提到的命名空间问题当然与管理它的可能方法相同。