jQuery从元素(或对象)生成唯一标识符

时间:2011-07-31 22:18:02

标签: jquery uniqueidentifier

我想知道从对象生成唯一标识符字符串的正确方法是什么,例如div。它应该是

  1. 独特 - 好吧,就像1.4之前的jQuery.data(元素),但是使用缓存,对吧?
  2. 稳定 - 刷新后保持不变,因此不会基于日期/时间或缓存。
  3. 从元素的内容生成,例如,复制该元素应该基本上给出相同的标识符。
  4. 一个字符串。
  5. 生成默认ID的常规基本方法,如增量,数组在这里是不够的。请分享你的智慧。

    提前致谢。

    编辑:请不要元素属性ID

2 个答案:

答案 0 :(得分:0)

所以你基本上需要一个js散列函数。不完全是我的领域,但我听说MurmurHash足够快(我猜通常的嫌疑人,如MD5或SHA1对js来说会慢)并且有js实现。

答案 1 :(得分:0)

你可以得到元素内容(包括元素本身)有一个字符串,然后实现类似于java jdk中实现的String.hashCode()方法。

String对象的哈希码计算为

 s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]

使用int算术,其中s [i]是字符串的第i个字符,n是字符串的长度,^表示取幂。 (空字符串的哈希值为零。)

根据您的实现/任务/用途,最好在服务器端实现此功能,但