使复选框过滤器正常工作

时间:2012-12-12 06:21:40

标签: javascript jquery filter

设计师学习在这里编写代码,在我的js中使用jquery或使用jquery。试图获得一个与这个人几乎相同的复选框过滤器:http://jsfiddle.net/BCbeU/但似乎无法让它像我正在构建的网站上的jsfiddle一样运行。

这是我的html复选框:

    <div class="tags">
    <label><input type="checkbox" rel="all"/> Show All </label>
    <label><input type="checkbox" rel="one"/> 1 Bedroom </label>
    <label><input type="checkbox" rel="two"/> 2 Bedroom </label>
    <label><input type="checkbox" rel="below"/> Below $1500 </label>
    <label><input type="checkbox" rel="above"/> Above $1500 </label>
</div>

这是我正在尝试过滤的项目的html:

<div id="shelf1-housing">
<ul class="results">
    <li class="all one">
        <a href="html/sessionone.html">
            <div class="box">
                <img src="../images/apartment2.jpg">
                    <h4>3 Bedroom Apartment</h4>
                    <h5>$1500 a month</h5>
            </div>
        </a>
    </li>

    <li class="all below">
        <a href="html/sessionone.html">
            <div class="box">
                <img src="../images/apartment1.jpg">
                    <h4>3 Bedroom Apartment</h4>
                    <h5>$1500 a month</h5>
            </div>
        </a>
    </li>

    <li class="below all">
        <a href="html/sessionone.html">
            <div class="box">
                <img src="../images/apartment2.jpg">
                    <h4>3 Bedroom Apartment</h4>
                    <h5>$1500 a month</h5>
            </div>
        </a>
    </li>

    <li class="all above">
        <a href="html/sessionone.html">
            <div class="box">
                <img src="../images/apartment1.jpg">
                    <h4>3 Bedroom Apartment</h4>
                    <h5>$1500 a month</h5>
            </div>
        </a>
    </li>

    <li class="all">
        <a href="html/sessionone.html">
            <div class="box">
                <img src="../images/apartment2.jpg">
                    <h4>3 Bedroom Apartment</h4>
                    <h5>$1500 a month</h5>
            </div>
        </a>
    </li>

</ul><!--End of Results-->
</div><!--End of Shelf1-Housing-->

这是javascript:

$('div.tags').delegate('input:checkbox', 'change', function(){
     var $lis = $('.results > li').hide();
     //For each one checked
     $('input:checked').each(function(){
          $lis.filter('.' + $(this).attr('rel')).show();
     });      
});

提前感谢您的帮助。还在学习基础知识,他们还没有把我这么做,很快,但还没有:)

2 个答案:

答案 0 :(得分:0)

我通过从您的网站复制代码创建了小提琴。请检查http://jsfiddle.net/LXymq/

进行了以下更改:
1)将李添加回一个名为结果的类的div。你就是这样的。
      <div class="results"> ... All LIs ... </div>

2)将所有代码添加到$(document).ready函数,因为代码在dom准备好之前执行。

$(document).ready(function() { ... all your code inside this .... });

4)硬编码美丽的图像路径。

答案 1 :(得分:0)

这个小例子可能会有所帮助。

Check and uncheck a checkbox with jQuery