我需要保持我的Html控件的状态(我有一个多选列表,我需要保留所选项目的信息),我正在使用自定义属性,如:
// put
$("#element").attr("selectionState", "value");
// get
alert($("#element").attr("selectionState"));
虽然它有效但我想知道它是否是一种安全的方法,如果没有,你会如何解决这个问题呢?
我能看到的唯一风险是 - 另一个脚本创建具有相同名称的自定义属性,这是我可以管理的。
答案 0 :(得分:3)
我建议改用.data()
。
$('#element').data('selectionState', 'value');
它绝对更安全,因为它将数据完全保存在JavaScript中,而不是DOM元素中的“属性”映射。罪“.data()”是所有JavaScript,你可以存储任何东西,包括函数和闭包。 (我想你也可以用“.attr()”做到这一点,但它在IE中风险很大,至少在旧版本中,对于DOM和JScript来说,内部存储管理方式完全不同。)
您提到的命名空间问题当然与管理它的可能方法相同。