2016-10-09 49 views
1

我有一些值,我試圖使用key:value對存儲在本地存儲中。我想keyMath.random()一個隨機值,但我的價值不被視爲一個變量鍵值對中的隨機變量不解釋爲變量

這是小提琴

https://jsfiddle.net/ps4xs60x/27/

和代碼

$(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>'); 
     }); 
}); 

哪有我讓num被視爲一個變量?

+0

你爲什麼假設,num不被視爲一個變量?你的代碼在這方面工作得很好。 – Syntac

+0

@Syntac我期待的數字不是''num「' –

+0

@charlietfl小數點也可以。 –

回答

2

免責聲明:

所以localStorage的不工作在這些片段這麼多,但看到下面或this forked fiddle代碼。

代碼更改

  1. 移動功能ae()onClick屬性,並把它定義爲一個普通JS功能。
  2. 假設你想要每個數字點擊到localStorage元素entry數組,然後你需要解析爲每次json(如果它被設置),而不是做一個新的數組。
  3. 除了使用onclick屬性,添加一個單擊處理程序與類名invite的元素,就像你正在做的與類名btn-primary元素...

function ae(event) { 
 
    var items = JSON.parse(localStorage.getItem('entry')); 
 
    if (items == null || typeof items !== 'object') { 
 
     items = []; 
 
    } 
 
    var entry = { 
 
    'num': event.target.id 
 
    }; 
 
    items.push(entry); 
 
    localStorage.setItem('entry', JSON.stringify(items)); 
 
    alert(localStorage.getItem('entry')); 
 
} 
 
$(document).ready(function() { 
 
    $(document).on('click', '.invite', ae); 
 
    $(document).on('click', '.btn-primary', function() { 
 
    var num = Math.random(); 
 
    $('.table tbody').append('<tr class="child"><td>one</td><td><button id="' + num + '"type="button" class="invite ">Invite</button></td></tr>'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="table"> 
 
    <tbody></tbody> 
 
</table> 
 

 
<button class="btn-primary">Add Row 
 
</button>