0

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

由于与后端的接口,我的 jquery 移动应用程序将搜索参数作为文本的数字表示形式存储到本地存储中。搜索参数有三个问题,有 6 到 15 个不同的选项。客户可以将搜索保存在他们的收藏夹中。我需要将数字转换为文本以使其对客户友好。我知道如何转换少于两个响应的响应,但我不知道如何转换三个或更多响应。

几乎所有的内容都是通过 Ajax 动态生成的,所以 jsFiddle 是不可能的(至少对我来说是 ;-)。

当返回搜索结果时(考虑搜索游轮),通过此命令将以下信息存储在本地存储中:

localStorage.search = JSON.stringify(searchParams);

它的存储方式如下:

{"departuredate":"","re​​turndate":"","re​​gion":"62224","price":"4","duration":"5"}

然后,如果客户想要将搜索保存为“收藏夹”,则使用以下命令进行存储:

localStorage.favorites = JSON.stringify(favorites);

存储在 localStorage 中的收藏搜索示例:

{"search":{"62224:4:5::":{"searchID":"62224:4","searchinfo":{"departuredate":"","re​​turndate":"","re​​gion": "62224","price":"4","duration":"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 页面上显示如下:

  • 地区编号:62224
  • 价格编号:4
  • 持续时间 ID:5
  • 出发编号:
  • 返回编号:

根据以下查找表,我希望持续时间显示为“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 或以下的值都将显示“任何”。但我不知道如何做两个以上的回应。

4

1 回答 1

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";
于 2012-10-12T23:19:25.750 回答