简体   繁体   English

使用ul li的jQuery过滤器列表

[英]jQuery filter list using ul li

I've got a filter list working using the select dropdown. 我有一个使用选择下拉列表的过滤器列表。 But because of the lack of styling options, I'd rather switch it to a ul instead. 但是由于缺少样式选项,我宁愿将其切换为ul But I'm having trouble doing so. 但是我这样做很麻烦。

Here's the jQuery I'm using 这是我正在使用的jQuery

$("select.filterby").change(function(){
    var filters = $.map($("select.filterby").toArray(), function(e){
        return $(e).val();
    }).join(".");
    $("div#FilterContainer").find("div").hide();
    $("div#FilterContainer").find("div." + filters).show();
});

I've tried changing select.filter to a regular div class but I can see it's mapping using the value function .val 我尝试将select.filter更改为常规div类,但可以使用值函数.val看到它的映射。

Ideally, I'd like it to be: 理想情况下,我希望它是:

<ul class="filterby">
    <li class="all">Show All</li>
    <li class="one">One</li>
    <li class="two">Two</li>
    <li class="three">Three</li>
</ul>

But I can't use a value tag on a li . 但是我不能在li上使用值标签。 Did anyone get any suggestions on the best way to solve this? 有没有人找到解决此问题的最佳方法的建议?

Here's a working fiddle: http://jsfiddle.net/6PrQW/329/ 这是一个有效的小提琴: http : //jsfiddle.net/6PrQW/329/

There are many ways to do this. 有很多方法可以做到这一点。 Personally, I like setting data attributes for HTML elements that have hidden values. 就个人而言,我喜欢为具有隐藏值的HTML元素设置数据属性。 using data-* attributes. 使用data-*属性。

I updated your code to make it work with a UL. 我更新了您的代码以使其与UL兼容。 http://jsfiddle.net/47703Lcd/3/ http://jsfiddle.net/47703Lcd/3/

<ul class="filterby">
    <li data-filter="all" class="all">Show All</li>
    <li data-filter="1"class="one">One</li>
    <li data-filter="2"class="two">Two</li>
    <li data-filter="3" class="three">Three</li>
</ul>

An the JS: JS:

$("ul.filterby li").click(function(){
    var filters = $(this).data("filter");
    $("div#FilterContainer").find("div").hide();
    $("div#FilterContainer").find("div." + filters).show();
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM