首先 - 我是一个新手,并试图处理别人的代码,所以希望我能提供所有必要的信息。
由于后端接口,我的jquery移动应用程序将搜索参数存储为本地存储,作为文本的数字表示。搜索参数有三个问题,有6到15个不同的选项。客户可以将搜索保存在他们的收藏夹中。我需要将数字转换为文本,以使其对用户友好。 我知道如何转换少于两个响应的响应,但我不知道如何为三个或更多响应。
几乎所有的内容都是通过Ajax动态生成的,所以jsFiddle是不可能的(至少对我而言;-)。
当返回搜索结果时(考虑搜索巡航),以下信息通过此命令存储在本地存储中:
localStorage.search = JSON.stringify(searchParams);
存储如下:
{ “departuredate”: “”, “returndate”: “”, “区域”: “62224”, “价格”: “4”, “持续时间”: “5”}
然后,如果客户想要将搜索保存为“收藏夹”,则会使用以下命令进行存储:
localStorage.favorites = JSON.stringify(favorites);
存储在localStorage中的收藏搜索示例:
{ “搜索”:{ “62224:4:5 ::”:{ “searchID”: “62224:4”, “searchinfo”:{ “departuredate”: “”, “returndate”: “”,”区 “:” 62224" , “价格”: “4”, “持续时间”: “5”}}}}
以下是我检索已保存搜索的代码:
> $.each(searches, function(idx, searchFav){
> var search = searchFav.searchinfo;
> var newSearchFav = template.clone().appendTo(disp);
> newSearchFav.attr('id', idx);
> $('#region', newSearchFav).html(search.region);
> $('#price', newSearchFav).html(search.price);
> $('#duration', newSearchFav).html(search.duration);
> $('#depart', newSearchFav).html((search.departuredate);
> $('#return', newSearchFav).append((search.returndate);
使用上面localStorage中的示例保存搜索,上面的代码显示在html页面上,如下所示:
我希望持续时间显示为“14晚以上”而不是“5”,基于以下查找表:
如果我只有两个回复,我可以加入以下内容(例如)
search.duration = ((search.duration > 4) ? "14+ Nights" : "Any");
$('#duration', newSearchFav).html(search.duration);
并且任何值4或以下将显示“任何”。但我不知道如何做两个以上的回复。
答案 0 :(得分:0)
我通过使用以下内容解决了这个问题:
search.duration = (search.duration > 4) ? "14+ Nights" : (search.duration == 4) ? "10-13 Nights" : (search.duration == 3) ? "7-9 Nights" : (search.duration == 2) ? "4-6 Nights" : (search.duration == 1) ? "1-3 Nights" : "Any Duration";