首頁  >  文章  >  web前端  >  jquery怎麼實現篩選功能

jquery怎麼實現篩選功能

藏色散人
藏色散人原創
2021-11-22 11:06:033457瀏覽

jquery實現篩選功能的方法:1、使用jquery的appendTo讓點擊的元素加入到列出項目裡面;2、透過jquery的clone函數實現直接移除屬性清單裡面的內容即可。

jquery怎麼實現篩選功能

本文操作環境:Windows7系統、jquery3.2.1、Dell G3電腦。

jquery怎麼實現篩選功能?

jquery 實作篩選功能。

商品屬性篩選

商品的屬性篩選 是十分常見的功能,通常是相同類型的屬性只能選擇一個。例如 價格範圍,或品牌,為了使選擇的內容看上去更直觀 ,一般都會將選擇項列出,並擁有點擊取消 選擇 ,點擊同類替換的功能。

在下面給出兩個完整實作。

實作1:

使用jquery 的appendTo  讓​​點擊的元素加入到列出項目裡面(同時偵測列出項目是否有相同類別的元素,有則替換出來,使它返回原始列表),

在列出項目裡面點擊元素,則返回原始div ,這裡為了實現返回原來的div 使用了自訂屬性。

自然這個實作是有一定的問題,由於限制了div 的class 和父元素的id 一致,這種情況很不方便,

而且每次都會需要重新綁定所有事件,一個遞迴。效率上有所欠缺,

接下來看第二種思路 ,更簡單清晰一點。效率會更高一點,而且不需要id 和class 相同,也不需要重新綁定多個事件

<!DOCTYPE html>
<html>
<head>
  <title>动画</title>
  <style type="text/css">
    .class1,.class2{
        width: 100px;
        height: 40px;
        margin: 10px;
    }
    #count{
        background-color: sandybrown;
        width: 400px;
        height: 200px;
    }
  </style>
</head>
<body>
<div id=&#39;class1&#39;>
    <button class="class1" data-belong="class1">皮鞋</button>
    <button class="class1" data-belong="class1">凉鞋</button>
    <button class="class1" data-belong="class1">拖鞋</button>
</div>
<div id="class2">
    <button class="class2" data-belong="class2">手套</button>
    <button class="class2" data-belong="class2">皮手套</button>
    <button class="class2" data-belong="class2">毛手套</button>
</div>
<div id="count"></div>
</body>
</html>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
(function check(){
    $(&#39;#class1> button,#class2>button&#39;).off("click").on("click",function(){
        $("#count button."+$(this).attr("data-belong")).appendTo("#"+$(this).attr("data-belong"));
        $(this).appendTo("#count");
        check()
})
    $(&#39;#count  button&#39;).off("click").on("click",function(){
        $(this).appendTo("#"+$(this).attr("data-belong"))
        check()
    })
})()
</script>

# 2:

使用jquery的clone 函數,這樣原列表就不會需要改動,點選屬性清單裡面的內容只需要直接移除,不需要id 和class一致。

更自由一些 。程式碼減少了,沒有遞歸的,沒有資料修改綁定的問題,比實現1 優化很多

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style type="text/css">
    .class1,.class2{
        width: 100px;
        height: 40px;
        margin: 10px;
    }
    #count{
        background-color: sandybrown;
        width: 400px;
        height: 200px;
    }
    </style>
    <body>
        <div>
            <button class="class1" data-belong="class1">皮鞋</button>
            <button class="class1" data-belong="class1">凉鞋</button>
            <button class="class1" data-belong="class1">拖鞋</button>
        </div>
        <div>
            <button class="class2" data-belong="class2">手套</button>
            <button class="class2" data-belong="class2">皮手套</button>
            <button class="class2" data-belong="class2">毛手套</button>
        </div>
    <div class="count">
    </div>
    </body>
</html>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
//只需保持 button 的 class 标志 和data-belong  一致即可。
    $("div:lt(2) button").click(function(){
        $("div.count ."+$(this).attr(&#39;data-belong&#39;)).remove();
        $(this).clone().appendTo("div.count");
        $(&#39;.count button&#39;).off("click").on("click",function(){
            $(this).remove();
    })
    })
</script>

推薦學習:《jquery影片教學

以上是jquery怎麼實現篩選功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn