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

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

 

排序

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

页面排序跳转的思路是通过点击某个按钮时会向其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.     };


相关文章
|
存储 数据管理 程序员
第1章 绪论——复习笔记
第1章 绪论——复习笔记
|
定位技术
阿里研究员玄难:如何做电商业务中台
2016 ATF阿里技术论坛于4月15日在清华大学举办,主旨是阐述阿里对世界创新做出的贡献。会上阿里业务平台事业部&淘宝基础平台技术部负责人玄难阐释了淘宝经历13年的发展中,业务平台从零到有,同时又逐步演进为业务中台。
41242 0
|
9月前
|
机器学习/深度学习 人工智能 算法
《AI赋能鸿蒙Next,开启智能关卡设计新时代》
在游戏开发中,关卡设计至关重要。借助鸿蒙Next系统和AI技术,通过学习玩家行为、自动生成内容、自适应难度调整、优化布局与流程及增强互动性,可实现个性化、多样化的智能关卡设计,提升沉浸感和趣味性,同时提高开发效率与质量。然而,开发者需关注数据安全与算法偏见等问题,确保AI与游戏的深度融合。
192 3
|
存储 算法 调度
操作系统实验三-驱动调度(一)
操作系统实验三-驱动调度
437 0
操作系统实验三-驱动调度(一)
|
监控 Java 微服务
第八章 Spring Cloud 之 Hystrix
第八章 Spring Cloud 之 Hystrix
122 0
|
Ubuntu Linux 网络安全
火墙术士:深入了解Linux系统防火墙命令
火墙术士:深入了解Linux系统防火墙命令
103 0
|
云安全 弹性计算 Linux
【玩转阿里云游戏服务器】阿里云幻兽帕鲁游戏服务器搭建教程
【玩转阿里云游戏服务器】阿里云幻兽帕鲁游戏服务器搭建教程:在《幻兽帕鲁》中,玩家可以在一个广阔的世界中自由探索,并收集神奇的生物“帕鲁”。这些帕鲁生物各具特色,有的擅长战斗,有的适合进行农活和工业生产。游戏中的多人模式让你能够邀请朋友一同加入冒险,共同创造独特的游戏记忆,展开合作或对战。不少玩家不知道幻兽帕鲁服务器怎么搭建,接下来分享幻兽帕鲁搭建本地服务器教程 !
|
NoSQL Java Redis
redis运维篇
redis运维篇
|
Linux 开发工具 数据安全/隐私保护
【内网穿透】Linux本地搭建GitLab服务器
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。
|
存储 缓存 前端开发