【发布时间】:2017-04-21 17:48:26
【问题描述】:
我有酒店列表页面,我想按trivago filtering 之类的评级过滤我的酒店(如下图所示)
我只显示匹配的结果,到目前为止还不错,但我想缺少一些东西我的意思是我可以显示多个过滤器,例如坏和优秀或从正常到非常好,如果你检查我的代码你会明白我的意思。我尝试相同的 trivago 过滤,只有这部分我做不到
所以你是我到现在为止所尝试的
$(document).ready(function() {
$("button").on("click", function() {
var dataRate = $(this).attr("data-rate");
$(this).css("opacity", "1");
$(this).nextAll().css("opacity", "1");
$(this).prevAll().css("opacity", "0.5");
$("#content .filter-list").hide();
$('#content .filter-list[data-show-list="' + dataRate + '"]').show();
});
})
* {
outline: none;
}
button {
cursor: pointer;
background: transparent;
border: none;
padding: 10px;
}
#wrap {
width: 960px;
}
#wrap:before,
#wrap:after {
content: "";
display: table;
clear: both;
}
#filter {
width: 40%;
float: left;
}
#content {
float: right;
width: 59%;
margin-left: 1%;
font-size: 12px;
font-family: sans-serif;
}
.filter-list {
border: 1px solid #ccc;
margin-bottom: 5px;
padding: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<main id="wrap">
<div id="filter">
<button data-rate="bad" style="background:#cc0033;color:#fff" name="rating">bad</button>
<button data-rate="normal" style="background:orange;color:#fff" name="rating">normal</button>
<button data-rate="good" style="background:#99cc00;color:#fff" name="rating">good</button>
<button data-rate="verygood" style="background:green;color:#fff" name="rating">very good</button>
<button data-rate="excellent" style="background:darkgreen;color:#fff" name="rating">excellent</button>
</div>
<!-- filter-->
<div id="content">
<div class="filter-list" data-show-list="good">
I'm a very good
</div>
<div class="filter-list" data-show-list="bad">
this is the bad list
</div>
<div class="filter-list" data-show-list="verygood">
I'm a very good to
</div>
<div class="filter-list" data-show-list="excellent">
Excellent!
</div>
<div class="filter-list" data-show-list="normal">
Iııh normal!
</div>
<div class="filter-list" data-show-list="good">
Good - enough thanks
</div>
<div class="filter-list" data-show-list="bad">
Bad - don't ever..
</div>
<div class="filter-list" data-show-list="excellent">
Excellent again
</div>
<div class="filter-list" data-show-list="bad">
isn't bad ? I think yes bad..
</div>
</div>
</main>
【问题讨论】:
-
为每个评级设置一个值,例如
Very very bad = 0和Excellent = 10并使用此数字进行过滤 -
谢谢,但我将如何将它应用到我的代码中?我是 jquery 的新手,我会怎么看
标签: javascript jquery