2

我正在尝试根据他们的影响过滤餐厅列表。我想使用滑块而不是印度/亚洲/墨西哥/欧洲美食等通用类别。

餐厅可能是

[{restaurant: 
    {name: 'The Apollon',
    thumb: 'apollon.jpg',
    type: 
        [{spicy: 5, type_id: 1}
        {garlic:3, type_id:2}
        {expensive:10, type_id:3}]}
}]

然后,我将使用通用 JQuery UI 滑块并将每个滑块的值传递给隐藏元素。

这是我完全被困住的地方。我可以通过使用类而不是 JSON( .nospice .somespice .spicy ) 并执行一个滑块来使其在一个滑块上工作if (value >= 7) {$('.spicy').show();},但我不确定如何进行更高级的查询(if x = >=7 AND y = >=3 AND z = >=5)

有人想在这里向正确的方向轻推我吗?我需要阅读什么。如果我以一种非常错误的方式来解决这个问题,请告诉我。

jsfiddle:http: //jsfiddle.net/techii/9e2cJ/

4

1 回答 1

2

jQuery 有一个.filter方法。我还建议您使用 div 存储餐厅对象,.data用于存储餐厅名称并使用其 div 键入:

$(".restaurants > div").filter(function(){
   var info = $(this).data("info");
   // Some code to extract things like spicyness, expensiveness
   // Also some code to get the slider values...
   if (spicynessSliderValue <= spicyness && expensivenessSliderValue <= expensiveness)
   {
       return true;
   }
}).show();

但是,在您的情况下,我建议使用$.each

$(".restaurants > div").each(function(){
   ...
   var isMatch = picynessSliderValue <= spicyness && expensivenessSliderValue <= expensiveness;
   $(this).toggle(isMatch); // like .show or .hide, but takes a boolean
})
于 2013-02-03T11:19:17.063 回答