Javascript 如何生成唯一的id?

Javascript 如何生成唯一的id?,javascript,jquery,Javascript,Jquery,我正在运行两次对谷歌的呼叫,以获得20张图像(谷歌默认情况下,一次呼叫只提供一组10张图像)。 但是,我需要为我得到的每个元素生成一个唯一的id。这里是我使用的jQuery,但第二组10个图像的id与前一组相同: function loadImage() { var uniqueId = (function() { var counter = 0; return function(prefix) { counter++;

我正在运行两次对谷歌的呼叫,以获得20张图像(谷歌默认情况下,一次呼叫只提供一组10张图像)。 但是,我需要为我得到的每个元素生成一个唯一的id。这里是我使用的jQuery,但第二组10个图像的id与前一组相同:

 function loadImage() {
    var uniqueId = (function() {
        var counter = 0;
        return function(prefix) {
            counter++;
            return prefix ? prefix + '' + counter : counter;
        }
    })();
    // GOOGLE IMAGES FRONT
    function createGoogleImagesLoad(initialValue) {
        var termS;          
        termS = $("#usp-title").val();
        var _start = initialValue || 1;
        var imagesCount = 10;
        var myCx = 'MY_CX';
        var myKey = 'MY_KEY';
        var $grid = $('.grid').packery({
          itemSelector: '.grid-item',
          percentPosition: true
        });
        return function() {
            $.getJSON("https://www.googleapis.com/customsearch/v1", {
            q: termS,
            alt: "json",
            searchType: "image",
            cx: myCx,
            num: imagesCount,
            start: _start,
            key: myKey,
            language: "it",
            rights: "cc_publicdomain, cc_attribute",
            filter: "1",
            safe: "high",
            imgType: "photo",
            fileType: "jpg"
            },
          function (data) {
              $.each(data.items, function(i, item) {
                var uniq = uniqueId('thing_');
                var $items = $('<div class="col-xs-12 col-md-6 grid-item">'.concat(
                  '<div class="thumbnail">',
                  '<input type="checkbox" name="', uniq, '" value="valuable" id="', uniq, '" />',
                  '<label for="', uniq, '">',
                    '<img class="img-responsive" src="' + item.link + '">',
                  '</label>',
                '</div>',
              '</div>'));
                $grid.append( $items ).packery( 'appended', $items );
                $grid.imagesLoaded().progress( function() {
                $grid.packery();
                $('body').on('change', '.grid .thumbnail :checkbox', function () {
                  var urls = [];
                  $(':checkbox:checked').each(function () {
                    urls.push($(this).next('label').find('img').attr('src'));
                  });
                  var str = '';
                  urls.forEach(function (url) {
                    str += '<div class="col-xs-12 col-md-6 grid-item"><div class="thumbnail"><img onerror="hideContainer(this)" src="' + url + '"/></div></div>';
                  });
                  $('#usp-custom-4').val(str);
                });
              });
            });
          });
          _start += imagesCount;
      }
    }
    var googleImagesFront = createGoogleImagesLoad();
    googleImagesFront();
}
函数loadImage(){
var uniqueId=(函数(){
var计数器=0;
返回函数(前缀){
计数器++;
返回前缀?前缀+“”+计数器:计数器;
}
})();
//谷歌图像前端
函数createGoogleImagesLoad(initialValue){
var项;
术语=$(“#usp标题”).val();
var _start=initialValue | | 1;
var ImageScont=10;
var myCx='MY_CX';
var myKey='MY_KEY';
变量$grid=$('.grid')。packer({
itemSelector:“.grid项”,
位置:正确
});
返回函数(){
$.getJSON(“https://www.googleapis.com/customsearch/v1", {
问:条件,
alt:“json”,
searchType:“图像”,
cx:myCx,
num:ImageScont,
开始:_开始,
钥匙:我的钥匙,
语言:“it”,
权限:“抄送公共域,抄送属性”,
过滤器:“1”,
安全:“高”,
imgType:“照片”,
文件类型:“jpg”
},
功能(数据){
$.each(data.items,function(i,item){
var uniq=uniqueId('thing_');
变量$items=$(''.concat(
'',
'',
'',
'',
'',
'',
''));
$grid.append($items).packery('appended',$items);
$grid.imagesLoaded().progress(函数()){
$grid.packer();
$('body').on('change','grid.缩略图:复选框',函数(){
var url=[];
$(':复选框:选中')。每个(函数(){
push($(this).next('label').find('img').attr('src'));
});
var-str='';
forEach(函数(url){
str+='';
});
$('usp-custom-4').val(str);
});
});
});
});
_start+=IMAGESCONT;
}
}
var googleImagesFront=createGoogleImagesLoad();
googleImagesFront();
}
如果您想要一个唯一的id,您可以使用这个实现标准的id,它的使用非常简单,您只需添加并选择要生成的版本的方法:

console.log('UUID v1:',UUID.v1());
log('UUID v4:',UUID.v4())
如果您想要一个唯一的id,您可以使用它来实现标准,它的使用非常简单,您只需添加并选择要生成的版本的方法:

console.log('UUID v1:',UUID.v1());
log('UUID v4:',UUID.v4())

您要调用
loadImage()
两次吗?这就是问题所在,它每次都会重新生成uniqueId函数,将
计数器重置为0。将
uniqueId
函数移到
loadImage
之外,它应该会修复它。

您是否调用
loadImage()
两次?这就是问题所在,它每次都会重新生成uniqueId函数,将
计数器重置为0。将
uniqueId
函数移到
loadImage
之外,它应该会修复它。

调用该函数时,变量
计数器始终处于初始化状态。如果放置
var计数器=0全局或函数外部的变量,则应能获得唯一ID。

调用函数时,变量
计数器始终处于初始化状态。如果放置
var计数器=0全局或函数外部的此变量,则您应该能够获得唯一的ID。

是的,对不起,我只是用标题上的base来回答。是的,对不起,我只是用标题上的base来回答