【发布时间】:2017-11-01 02:49:46
【问题描述】:
我有一组两个不同的复选框;价格和类别。
最初,我希望显示整个结果列表,但随着过滤器的应用,列表会发生变化,然后当过滤器被移除或全部移除时,列表会调整。
我正在使用 JQuery 过滤结果,但我似乎无法得到它,因此当没有勾选复选框时,所有产品都会显示,例如,如果没有勾选价格,但工具之一在类别中,所有仪器显示。它们由 <li> 标记中的类标记标识,在我的代码中,它是从 JSON 文件设置的,但在 JSFiddle 中,我只是放置了一些示例测试数据。
我创建了一个 JSFiddle,但它似乎没有运行,但完全相同的代码在我的笔记本电脑上运行。
这是我的代码:
$(document).ready(function() {
$("#price :checkbox").click(function() {
$("li").hide();
$("#price :checkbox:checked").each(function() {
$("." + $(this).val()).show();
});
});
$("#category :checkbox").click(function() {
$("li").hide();
$("#category :checkbox:checked").each(function() {
$("." + $(this).val()).show();
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<section id="price">
<p id="fHeader">Price</p>
<input type="checkbox" name="price" value="p1" id="p1" />£0 - £5
<br>
<input type="checkbox" name="price" value="p2" id="p2" />£5 - £10
<br>
<input type="checkbox" name="price" value="p3" id="p3" />£10 - £50
<br>
<input type="checkbox" name="price" value="p4" id="p4" />£50 - £100
<br>
<input type="checkbox" name="price" value="p5" id="p5" />£100 - £500
<br>
<input type="checkbox" name="price" value="p6" id="p6" />£500 - £1000
<br>
<input type="checkbox" name="price" value="p7" id="p7" />£1000 +
<br>
</section>
<section id="category">
<p id="fHeader">Category</p>
<input type="checkbox" name="category" value="instruments" id="instruments" />Instruments
<br>
<input type="checkbox" name="category" value="sheetmusic" id="sheet-music" />Sheet Music
<br>
<input type="checkbox" name="category" value="accessories" id="accessories" />Accessories
<br>
</section>
<article id="products">
<ul id="productList">
<li class="instruments p5 buffet woodwind clarinet">Buffet B12 Clarinet £400</li>
<li class="instruments p7 yamaha woodwind clarinet">Yamaha Clarinet £1700</li>
<li class="instruments p6 trevorjames woodwind alto-saxophone">Trevor James Alto Saxophone £700</li>
<li class="instruments p3 aulos woodwind recorder">Aulos Recorder £16</li>
</ul>
</article>
任何有关如何从这里处理它的帮助将不胜感激。谢谢。
【问题讨论】:
-
可能是因为你没有从 jsfiddle 左侧的下拉框中选择 Jquery :/
标签: javascript jquery html checkbox