【问题标题】:Get DOM element hash in javascript?在javascript中获取DOM元素哈希?
【发布时间】:2013-12-16 14:04:35
【问题描述】:

如果元素没有 ID 属性,我想生成某种唯一标识符来标识元素。

是否有一些函数可以获取 DOM 元素对象的对象哈希,类似于 PHP 中的 spl_object_hash ?那已经足够独特了。

【问题讨论】:

    标签: javascript jquery object hash


    【解决方案1】:

    试试这个:

    var uid = function (i) {
        return function () { 
            return 'prefix-' + (++i); 
        };
    }(0);
    

    用法:

    uid(); // "prefix-1"
    uid(); // "prefix-2"
    if (!el.id) el.id = uid(); // "prefix-3"
    

    【讨论】:

      【解决方案2】:

      JavaScript 中没有“对象哈希”。您可以设置自己的计数器来创建未使用的“id”值。

      var getUnusedId = function() {
         var counter = 0;
         return function(prefix) {
           prefix = prefix || "thelolcat";
           var theId;
           while (document.getElementById(theId = prefix + counter++));
           return theId;
         };
      }();
      

      这为您提供了一个函数,您可以调用它来获取像“thelolcat203”这样的 id。每次调用它时,计数器都会递增,它会检查新值以确保文档中没有这样的元素。

      这样做并不完全安全,因为您不确定某些要动态添加的内容不会有相同的 id,但使用某些内容并不太难约定使得它不太可能发生冲突。 (无论如何,jQuery 库都会在内部执行此操作。)

      【讨论】:

        【解决方案3】:

        这会对浏览器造成可笑的负担。您所描述的可以使用已经内置在 JS 中的东西来完成。要么通过JS自动给他们ID,要么你可以通过类、孩子、父母、标签名等来选择他们。

        【讨论】:

          猜你喜欢
          • 2013-10-28
          • 2016-04-23
          • 1970-01-01
          • 1970-01-01
          • 2014-05-23
          • 1970-01-01
          • 1970-01-01
          • 2010-12-18
          相关资源
          最近更新 更多