jQuery生成唯一的ID

这就是我所拥有的:

<a href="https://stackoverflow.com/questions/26203453/jquery-generate-unique-ids/">https://stackoverflow.com/questions/26203453/jquery-generate-unique-ids/ 

它是一个PHP数组,包含一些链接。 我需要在每个链接的末尾添加一个额外的哈希参数#nav-link link。

这是我尝试的方式:

 https://stackoverflow.com/questions/26203453/jquery-generate-unique-ids/  $(document).ready(function () { $("#likeLink").attr("href", https://stackoverflow.com/questions/26203453/jquery-generate-unique-ids/ + "#nav-link"); });  

但是这段代码不起作用,因为jQuery不知道我链接到哪些链接。 所以我想我需要生成唯一的ids ,但不知道该怎么做。

为了生成随机ID,您可以使用这个。

       

我不需要一个永远独特/随机的ID,只是每页独一无二的东西,所有这些解决方案对我来说似乎有点过头了所以我想出了这个:

 var uniqId = (function(){ var i=0; return function() { return i++; } })(); 

从v1.9开始,jQueryUI有一个用于创建唯一id的内置方法,名为uniqueId()。

此代码将在属于myclass的每个元素上设置唯一ID。

 $(".myclass").each(function () { $(this).uniqueId(); }); 

请注意,至少在我的测试中,如果元素已经有一个,则无法分配新的id。

因此,这个div将获得上述Javascript代码的唯一ID

 

但这不会

 

有关更多信息,请参阅https://api.jqueryui.com/uniqueId/

假设你在某种循环中调用代码,你可以直接替换

 ">https://stackoverflow.com/questions/26203453/jquery-generate-unique-ids/ 

 #nav-link">https://stackoverflow.com/questions/26203453/jquery-generate-unique-ids/ 

这样,“#nav-link”就会在每个链接的末尾添加。 根本不需要javascript或jquery:D

我总是使用以下代码来生成唯一ID。 几年前我在Stackoverflow上发现了这个方法:

  /** * Create a random Guid. * * @return {String} a random guid value. */ newGuid: function() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }).toUpperCase(); } 

你可以在我的库中找到其他有用的js助手: https : //github.com/mazong1123/neatjs

我知道这已经有一年了,然而,OP表示他不知道如何应用这些ID。 这可以使用本文所用的beri以上的rand原型轻松完成。

 /// insure ALL myClass elements have a unique ID. if(!$('.myClass').attr("id")){ $('.myClass').attr("id",idGen.getId()); console.log($('.myClass').attr("id")); } 

或使用更广泛的画笔:

 /// insure ALL anchor tags have a unique ID. if(!$('a').attr("id")){ $('a').attr("id",idGen.getId()); } 

我们可以使用Underscore中的uniqueId()为元素创建唯一的id:

唯一身份

  _.uniqueId([prefix]) 

为客户端模型或需要一个的DOM元素生成全局唯一的id。 如果传递了prefix ,则id将附加到它。

 _.uniqueId('contact_'); => 'contact_104'