Jquery 会话存储问题,存储多个数据
我有一个从输入字段收集数据并将其附加到表中的应用程序。请看下面我的代码。我做错了什么Jquery 会话存储问题,存储多个数据,jquery,html,sessionstorage,Jquery,Html,Sessionstorage,我有一个从输入字段收集数据并将其附加到表中的应用程序。请看下面我的代码。我做错了什么 function save(){ var name= $("#name").val(); var email= $("#email").val(); var telephone= $("#tel").val(); var street= $("#s
function save(){
var name= $("#name").val();
var email= $("#email").val();
var telephone= $("#tel").val();
var street= $("#street").val();
var city= $("#city").val();
var state= $("#state").val();
var zip= $("#zip").val();
var inputArray = [name, email, telephone, street, city, state, zip];
var dataToStore = JSON.stringify(inputArray);
var uniqueID = ID();
sessionStorage.setItem(uniqueID, dataToStore);
display();
};
function display(){
var myArraySerialized = sessionStorage.getItem(uniqueID);
var myArray = JSON.parse( myArraySerialized );
var restoredName = myArray[0];
var restoredEmail = myArray[1];
var restoredTel = myArray[2];
var restoredStreet = myArray[3];
var restoredCity = myArray[4];
var restoredState = myArray[5];
var restoredZip = myArray[6];
//append filled information from the form to the table and 2 buttons - Update and Remove
$("#listContent table").append( "<tr>"+
"<td>" + restoredName + "</td>"+
"<td>" + restoredEmail + "</td>"+
"<td>" + restoredTel + "</td>"+
"<td>" + restoredStreet + "</td>"+
"<td>" + restoredCity + "</td>"+
"<td>" + restoredState + "</td>"+
"<td>" + restoredZip + "</td>"+
"<td>" + "<button>Update</button>" + "</td>" +
"<td>" + "<button>Remove</button>" + "</td>" +
"</tr>");
}
var ID = function () {
return '_' + Math.random().toString(36).substr(2, 9);
};
虽然控制台说uniqueID并没有定义,但我不明白为什么。当我使用任何其他变量-名称、电子邮件、街道等-它传递、唯一ID-编号。我做错了什么?感谢您的帮助,而不是:
var ID = function ()
做:
否则您将无法调用它,因为在js读取您试图调用它的代码时,该变量将是未定义的
要了解这两个函数声明之间的差异,请参见
还要注意,var uniqueID=ID;在函数save的作用域内声明,因此display将无法看到它,也许您应该将其作为参数传递:
//...
display(uniqueID);
//...
//...
function display (uniqueID) {
//...
为了避免混淆,以下是完整的代码:
function save() {
var name = $("#name").val();
var email = $("#email").val();
var telephone = $("#tel").val();
var street = $("#street").val();
var city = $("#city").val();
var state = $("#state").val();
var zip = $("#zip").val();
var inputArray = [name, email, telephone, street, city, state, zip];
var dataToStore = JSON.stringify(inputArray);
var uniqueID = ID();
sessionStorage.setItem(uniqueID, dataToStore);
display(uniqueID);
};
function display(uniqueID) {
var myArraySerialized = sessionStorage.getItem(uniqueID);
var myArray = JSON.parse(myArraySerialized);
var restoredName = myArray[0];
var restoredEmail = myArray[1];
var restoredTel = myArray[2];
var restoredStreet = myArray[3];
var restoredCity = myArray[4];
var restoredState = myArray[5];
var restoredZip = myArray[6];
//append filled information from the form to the table and 2 buttons - Update and Remove
$("#listContent table").append("<tr>" +
"<td>" + restoredName + "</td>" +
"<td>" + restoredEmail + "</td>" +
"<td>" + restoredTel + "</td>" +
"<td>" + restoredStreet + "</td>" +
"<td>" + restoredCity + "</td>" +
"<td>" + restoredState + "</td>" +
"<td>" + restoredZip + "</td>" +
"<td>" + "<button>Update</button>" + "</td>" +
"<td>" + "<button>Remove</button>" + "</td>" +
"</tr>"
);
}
function ID() {
return '_' + Math.random().toString(36).substr(2, 9);
};
var uniqueID=ID,是的,这个变量在另一个函数中被划分,它只在这个函数中出现,但我用这个键在sessionStorage中设置了一个数组,因此uniqueID应该与sessionStorage关联,并且可以在其他函数中重用,但这不是我在回答中要解释的,在要从sessionStorage检索数据的函数中看不到变量uniqueID,您需要以某种方式将其传递给display函数。
function save() {
var name = $("#name").val();
var email = $("#email").val();
var telephone = $("#tel").val();
var street = $("#street").val();
var city = $("#city").val();
var state = $("#state").val();
var zip = $("#zip").val();
var inputArray = [name, email, telephone, street, city, state, zip];
var dataToStore = JSON.stringify(inputArray);
var uniqueID = ID();
sessionStorage.setItem(uniqueID, dataToStore);
display(uniqueID);
};
function display(uniqueID) {
var myArraySerialized = sessionStorage.getItem(uniqueID);
var myArray = JSON.parse(myArraySerialized);
var restoredName = myArray[0];
var restoredEmail = myArray[1];
var restoredTel = myArray[2];
var restoredStreet = myArray[3];
var restoredCity = myArray[4];
var restoredState = myArray[5];
var restoredZip = myArray[6];
//append filled information from the form to the table and 2 buttons - Update and Remove
$("#listContent table").append("<tr>" +
"<td>" + restoredName + "</td>" +
"<td>" + restoredEmail + "</td>" +
"<td>" + restoredTel + "</td>" +
"<td>" + restoredStreet + "</td>" +
"<td>" + restoredCity + "</td>" +
"<td>" + restoredState + "</td>" +
"<td>" + restoredZip + "</td>" +
"<td>" + "<button>Update</button>" + "</td>" +
"<td>" + "<button>Remove</button>" + "</td>" +
"</tr>"
);
}
function ID() {
return '_' + Math.random().toString(36).substr(2, 9);
};