Javascript 键值对中的随机变量不解释为变量

Javascript 键值对中的随机变量不解释为变量,javascript,jquery,Javascript,Jquery,我尝试使用key:value对将一些值存储在本地存储器中。我希望键是Math.random()中的随机值,但我的值不被视为变量 这是小提琴 代码呢 $(document).ready(function () { $(document).on('click', '.btn-primary', function(){ var num = Math.random(); $('.table tbody').append('<tr class="child"><t

我尝试使用
key:value
对将一些值存储在本地存储器中。我希望
Math.random()
中的随机值,但我的值不被视为变量

这是小提琴

代码呢

$(document).ready(function () {
 $(document).on('click', '.btn-primary', function(){
 var num = Math.random();
         $('.table tbody').append('<tr class="child"><td>one</td><td><button id="'+num+'" onClick="ae(this.id); function ae(clicked_id) {var items = []; var entry = {\'num\': clicked_id}; items.push(entry);localStorage.setItem(\'entry\',JSON.stringify(items));alert(localStorage.getItem(\'entry\',JSON.stringify(items)));}" type="button" class="invite ">Invite</button></td></tr>');
      });
});
$(文档).ready(函数(){
$(文档).on('click','.btn primary',function(){
var num=Math.random();
$('.table tbody').append('oneInvite');
});
});
如何将
num
视为变量?

免责声明: 因此,localStorage在这些代码段中不起多大作用,但请参阅下面的代码或

代码更改
  • 将函数
    ae()
    移出
    onClick
    属性,并将其定义为常规JS函数
  • 假设您希望将单击的每个数字添加到localStorage元素
    entry
    数组中,那么每次都需要将其解析为json(如果已设置),而不是生成一个新数组
  • 不要使用
    onclick
    属性,而是为类名为
    invite
    的元素添加一个单击处理程序,就像对类名为
    btn primary
    的元素所做的那样
  • 功能ae(事件){
    var items=JSON.parse(localStorage.getItem('entry');
    if(items==null | | typeof items!==object'){
    项目=[];
    }
    变量项={
    “num”:event.target.id
    };
    项目。推送(进入);
    setItem('entry',JSON.stringify(items));
    警报(localStorage.getItem('entry');
    }
    $(文档).ready(函数(){
    $(文档).on('click','invite','ae);
    $(文档).on('click','.btn primary',function(){
    var num=Math.random();
    $('.table tbody').append('oneInvite');
    });
    });
    
    
    添加行
    
    为什么假设num不被视为变量?您的代码在这方面运行得非常好。@Syntac我期望的数字不是
    “num”
    @charlietfl十进制也可以。是的,但是您必须编写
    '+num+'
    ,而不是
    \'num\
    。停止将所有业务逻辑放入html中。因为您使用的是jQuery,所以请改用jQuery事件处理程序。内联onClick是20世纪90年代……这是2016年