是否可以将动态字符串加载并组合到localStorage.getItem()中?

时间:2013-05-31 05:30:20

标签: jquery jquery-mobile local-storage

我正在使用jQuerymobile,我有一个listview。在列表视图中,我有从localStorage加载的动态内容。当您单击特定的listitem时,我希望用户转到下一页,该页面是该特定localstorage对象的关联值。

我可以让我的代码在下面工作(我已经评论过了)。问题是,

var favoritedName = JSON.parse( localStorage.getItem(placesText));

返回NULL。

但如果我手动加载

var favoritedName = JSON.parse( localStorage.getItem("placesFireside Bar"));

它工作正常。

我想知道您是否可以从列表视图中单击的列表项中动态加载.text(),然后将其设置为localstorage.getItem()中的键。

这是我的代码:

// click the list item, which is a specific bar
$('#all-my-favorites li').click(function() {

// get specific name of Bar from the list item
listitemText = $(this).text();

// OR manually name the list item. example here is "Fireside Bar" for testing    purposes
//listitemText = "Fireside Bar";

// combine the strings, so i can search localstorage for the relevant key item
placesText = "places" + listitemText;
//alert(placesText);
// returns "placesFireside Bar" or  "places(barname from listitem)"

});   

// go to the new page, which should show content from the relevant key item
$('#favorited').on('pagebeforeshow', function() {

// test to see if placesText is a string
alert(jQuery.type( placesText ) === "string");
// returns TRUE

// find the relevant keyitem from localstorage, and name the object favoritedName
var favoritedName = JSON.parse( localStorage.getItem(placesText));
alert(favoritedName);
// returns NULL

$(this).find('[data-role=header] .ui-title').text(favoritedName.name);
$('#FavoritedplaceName').text(favoritedName.name);
$('#FavoritedlocationName').text(favoritedName.location);
$('#FavoritedtimeofDay').text(favoritedName.timeOfDay);
$('#FavoriteddayofWeek').text(favoritedName.dayofWeek);
});

0 个答案:

没有答案