我在会话中存储了以下数据(JSON):
Prescription: [{"medID":"id1","medName":"name1","medQty":"qty1","medDirec":"Directions1"}, {"medID":"id2","medName":"name2","medQty":"qty2","medDirec":"Directions2"}]
我想在页面Listview
的{{1}}(jQuery Mobile)中自动“显示”这些信息,为此我提出了以下建议:
load
当我取消注释$(document).ready(function () {
window.addEventListener('load', OnStorage, false);
});
function OnStorage(event) {
if (window.sessionStorage) {
var retrievedData = sessionStorage.getItem("Prescription");
var PrescriptionJSON = JSON.parse(retrievedData);
var prescLength = PrescriptionJSON.Length();
for (var i = 0; i < PrescriptionJSON.Length(); i++) {
var text = '<h2>' + PrescriptionJSON[i].medName + '</h2>' +
'<p><strong>Quantity: </strong>' + PrescriptionJSON[i].medQty + '</p>' +
'<p><strong>Directions: </strong>' + PrescriptionJSON[i].medDirec + '</p>'
$('<li />', {
html: text
}).appendTo("#summaryList ul");
//$("#summaryList").append(text);
//alert(retrievedData);
}
$('#summaryList').listview("refresh");
$('#summaryList').trigger("create");
}
}
时,我在警告弹出窗口中获取JSON,但是当我调用//alert(retrievedData);
(//alert(PrescriptionJSON);
变量)时,我得到类似[object,Object]的内容。尽管如此,我不知道这是否值得一提,但以防万一。
基本上我不知道上面的脚本有什么问题,因为我没有从附加到parsed
的JSON数据中得到任何结果。
仅供参考,我在HTML方面有这个。
listview
请注意,数据的长度(<ul id="summaryList" data-role="listview" data-inset="true">
<li data-role="list-divider" style="text-align:center">Prescription Summary</li>
</ul>
)将动态创建,因此长度可能并不总是2,如上例所示。
我在网上进行了2小时的研究,发现了类似的问题,但没有人可以帮我解决问题。我还看了http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/并学到了更多的东西,但仍然无法解决我的问题。
非常欢迎任何建议或问题!
答案 0 :(得分:1)
var PrescriptionJSON = '[{"medID":"id1","medName":"name1","medQty":"qty1","medDirec":"Directions1"}, {"medID":"id2","medName":"name2","medQty":"qty2","medDirec":"Directions2"}]';
localStorage.setItem("PrescriptionJSON", PrescriptionJSON);
function OnStorage(event) {
if (window.localStorage) {
var retrievedData = localStorage.getItem("PrescriptionJSON");
var obj = $.parseJSON(retrievedData);
var li = "";
$.each(obj, function(key, value) {
li += '<li><h2>' + value.medName + '</h2><p><strong>Quantity: </strong>' + value.medQty + '</p><p><strong>Directions: </strong>' + value.medDirec + '</p></li>'
})
$('#summaryList').append(li).trigger("create");
$('#summaryList').listview("refresh");
}
}