这就是我所拥有的:
<a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a>
这是一个PHP数组,其中包含一些链接。我需要在每个链接的末尾添加一个额外的哈希参数#nav-link
。
以下是我尝试过的方法:
<a id="likeLink" href=""><?=$arItem["TEXT"]?></a>
<script>
$(document).ready(function () {
$("#likeLink").attr("href", <?=$arItem["LINK"]?> + "#nav-link");
});
</script>
但是这段代码不起作用,因为jQuery不知道我链接到哪些链接。所以我想我需要生成唯一的ids
,但不知道该怎么做。
答案 0 :(得分:17)
我不需要一个永远独特/随机的ID,只是每页独一无二的东西,所有这些解决方案对我来说似乎有点过头了所以我想出了这个:
var uniqId = (function(){
var i=0;
return function() {
return i++;
}
})();
答案 1 :(得分:9)
为了生成随机ID,你可以使用这个。
<script type="text/javascript">
function Generator() {};
Generator.prototype.rand = Math.floor(Math.random() * 26) + Date.now();
Generator.prototype.getId = function() {
return this.rand++;
};
var idGen =new Generator();
</script>
</html>
<body>
<!-- Place this in the body of the page content -->
<button onclick="console.log(idGen.getId())">click</button>
</body>
答案 2 :(得分:5)
从v1.9开始,jQueryUI有一个用于创建唯一id的内置方法,名为uniqueId()。
此代码将在属于myclass的每个元素上设置唯一ID。
$(".myclass").each(function () {
$(this).uniqueId();
});
请注意,至少在我的测试中,如果元素已经有一个,则无法分配新的id。
因此,这个div将获得上述Javascript代码的唯一ID
<div class="myclass"/>
但这不会
<div class="myclass" id="myId"/>
有关详细信息,请参阅https://api.jqueryui.com/uniqueId/
答案 3 :(得分:2)
假设你在某种循环中调用代码,你可以只替换
<a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a>
与
<a href="<?=$arItem["LINK"]?>#nav-link"><?=$arItem["TEXT"]?></a>
这样在每个链接的末尾添加“#nav-link”。根本不需要javascript或jquery:D
答案 4 :(得分:2)
我总是使用以下代码生成唯一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
答案 5 :(得分:2)
我知道现在已经有一年了,然而,OP说他不知道&#39;怎么&#39;申请ID。这可以通过上面beri使用的兰德原型轻松完成。
/// 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());
}
答案 6 :(得分:2)
我们可以使用创建元素的唯一ID 下划线中的uniqueId():
UNIQUEID
_.uniqueId([prefix])
为需要的客户端模型或DOM元素生成全局唯一的ID。如果传递前缀,则会将ID附加到其中。
_.uniqueId('contact_'); => 'contact_104'