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/=$arItem["TEXT"]?>
同
#nav-link">https://stackoverflow.com/questions/26203453/jquery-generate-unique-ids/=$arItem["TEXT"]?>
这样,“#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'