Jquery - 在检索显示给用户时如何显示存储数值的文本查找

时间:2012-10-11 23:49:53

标签: jquery local-storage each

首先 - 我是一个新手,并试图处理别人的代码,所以希望我能提供所有必要的信息。

由于后端接口,我的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页面上,如下所示:

  • region id:62224
  • price id:4
  • 持续时间id:5
  • 离开id:
  • return id:

我希望持续时间显示为“14晚以上”而不是“5”,基于以下查找表:

  • 0 =“任何夜晚!”
  • 1 =“1-3晚”
  • 2 =“4-6晚”
  • 3 =“7-9夜”
  • 4 =“10-13夜”
  • 5 =“14+夜”

如果我只有两个回复,我可以加入以下内容(例如)

 search.duration = ((search.duration > 4) ? "14+ Nights" : "Any");
$('#duration', newSearchFav).html(search.duration);

并且任何值4或以下将显示“任何”。但我不知道如何做两个以上的回复。

1 个答案:

答案 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";