检索业务:排序和价格区间及库存

简介: 检索业务:排序和价格区间及库存

 

排序

点击某个排序时首先按升序显示,再次点击再变为降序,并且还会显示上升或下降箭头

页面排序跳转的思路是通过点击某个按钮时会向其class属性添加/去除desc,并根据属性值进行url拼接

 

点击排序时

1.     $(".sort_a").click(function () {
2. changeStyle(this);
3. let sort = $(this).attr("sort");
4.         sort = $(this).hasClass("desc") ? sort + "_desc" : sort + "_asc";
5.         location.href = replaceParamVal(location.href, "sort", sort,false);
6. 
7. return false;
8.     });

当点击的时候,改变样式,并进行请求的拼接,阻止默认的跳转行为

改变样式

1. function changeStyle(ele) {
2. // location.href = replaceParamVal(href, "pageNum", pn,flase);
3. // color: #333; border-color: #ccc; background: #fff
4. // color: #fff; border-color: #e4393c; background: #e4393c
5.         $(".sort_a").css({"color": "#333", "border-color": "#ccc", "background": "#fff"});
6.         $(".sort_a").each(function () {
7. let text = $(this).text().replace("↓", "").replace("↑", "");
8.             $(this).text(text);
9.         })
10. 
11.         $(ele).css({"color": "#FFF", "border-color": "#e4393c", "background": "#e4393c"});
12.         $(ele).toggleClass("desc");
13. //升降序改变
14. if ($(ele).hasClass("desc")) {
15. //降序
16. let text = $(ele).text().replace("↓", "").replace("↑", "");
17.             text = text + "↓";
18.             $(ele).text(text);
19.         } else {
20. //升序
21. let text = $(ele).text().replace("↓", "").replace("↑", "");
22.             text = text + "↑";
23.             $(ele).text(text);
24.         }
25.     };

 let text = $(ele).text().replace("↓", "").replace("↑", "");进行替换字符,显示在前端界面

价格区间

<input id="skuPriceFrom" type="number"
       th:value="${#strings.isEmpty(priceRange)?'':#strings.substringBefore(priceRange,'_')}"
       style="width: 100px; margin-left: 30px">
-
<input id="skuPriceTo" type="number"
       th:value="${#strings.isEmpty(priceRange)?'':#strings.substringAfter(priceRange,'_')}"
       style="width: 100px">
<button id="skuPriceSearchBtn">确定</button>

增加input标签进行传递次数进行拼接

点击确认时

1.     $("#skuPriceSearchBtn").click(function () {
2. let from = $(`#skuPriceFrom`).val();
3. let to = $(`#skuPriceTo`).val();
4. 
5. let query = from + "_" + to;
6.         location.href = replaceParamVal(location.href, "skuPrice", query,false);
7.     });

库存存在

<li>
    <a th:with="check = ${param.hasStock}">
        <input id="showHasStock" type="checkbox" th:checked="${#strings.equals(check,'1')?true:false}">
        仅显示有货
    </a>
</li>

点击查询时候

1. $("#showHasStock").change(function () {
2. alert( $(this).prop("checked") );
3. if( $(this).prop("checked") ) {
4.         location.href = replaceParamVal(location.href,"hasStock",1,false);
5.     } else {
6. let re = eval('/(hasStock=)([^&]*)/gi');
7.         location.href = (location.href+"").replace(re,"");
8.     }
9. return false;
10. });

 

replaceParamVal函数

1. function replaceParamVal(url, paramName, replaceVal,forceAdd) {
2. var oUrl = url.toString();
3. var nUrl;
4. if (oUrl.indexOf(paramName) != -1) {
5. if( forceAdd ) {
6. if (oUrl.indexOf("?") != -1) {
7.                     nUrl = oUrl + "&" + paramName + "=" + replaceVal;
8.                 } else {
9.                     nUrl = oUrl + "?" + paramName + "=" + replaceVal;
10.                 }
11.             } else {
12. var re = eval('/(' + paramName + '=)([^&]*)/gi');
13.                 nUrl = oUrl.replace(re, paramName + '=' + replaceVal);
14.             }
15.         } else {
16. if (oUrl.indexOf("?") != -1) {
17.                 nUrl = oUrl + "&" + paramName + "=" + replaceVal;
18.             } else {
19.                 nUrl = oUrl + "?" + paramName + "=" + replaceVal;
20.             }
21.         }
22. return nUrl;
23.     };


相关文章
|
6月前
|
对象存储
统计数组中的重复数据的数量
这篇文章总结了5种统计数组中重复数据数量的方法。方法1和4使用for循环和对象存储计数;方法2和5利用`reduce`函数,其中方法5是最简写形式;方法3是特定场景下的应用,针对特定值计数。所有方法最终都返回一个对象,键为数组元素,值为出现次数。
116 3
|
6月前
|
存储 搜索推荐 算法
14.如何把百万级别订单根据金额排序
14.如何把百万级别订单根据金额排序
34 0
|
6月前
|
存储 搜索推荐 算法
如何把百万级别的订单根据金额排序
如何把百万级别的订单根据金额排序
48 0
淘宝批量复制宝贝提示“当前类目大于48小时发货的发货时间不能大于15天,请调整”怎么解决?
要复制这个宝贝上传到淘宝店铺,只需要重新复制一次,然后在大淘营淘宝宝贝复制专家下载配置的第二步,选择一个小于或等于15天的发货时间(见下图),这样就可以复制宝贝上传到淘宝店铺了。
|
iOS开发 索引
LeetCode--1773. 统计匹配检索规则的物品数量
给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。 另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。 如果第 i 件物品能满足下述条件之一,则认为该物品与给定的检索规则 匹配 : ruleKey == "type" 且 ruleValue == typei 。 ruleKey == "color" 且 ruleValue == colori 。 ruleKey == "name" 且 ruleValue == namei 。 统计并返回 匹配检索规则的物品数量 。
81 0
|
算法
红包随机算法,给定一定的金额,一定的人数,保证每个人都能随机获得一定的金额。...
红包随机算法,给定一定的金额,一定的人数,保证每个人都能随机获得一定的金额。...
232 0
LeetCode 1773. 统计匹配检索规则的物品数量
给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。
97 0
某商品有2种不同数量的包装,对应不同的价格;同时提供满200元减50元的不限量购物券,试求解最好购买策略,在单次购买中以最低总价购买正好500个商品
某商品有2种不同数量的包装,对应不同的价格;同时提供满200元减50元的不限量购物券,试求解最好购买策略,在单次购买中以最低总价购买正好500个商品
107 0
|
iOS开发
LeetCode每日一题——1773. 统计匹配检索规则的物品数量
给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。
83 0
购物车增减商品数量2-修改商品小计35
购物车增减商品数量2-修改商品小计35
100 0
购物车增减商品数量2-修改商品小计35