JS实现商品筛选功能


Posted in Javascript onAugust 19, 2020

每天一个JS 小demo之商品筛选。主要知识点:DOM方法综合运用

效果图:

JS实现商品筛选功能

代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
nav {
height: 50px;
}
nav span {
margin: 0 5px;
}
.show {
color: red;
}
</style>
</head>
<body>
<nav></nav>
<ul>
<li>
<strong>手机:</strong>
<a href="javascript:;">锤子T1</a>
<a href="javascript:;">锤子T2</a>
<a href="javascript:;">坚果U1</a>
<a href="javascript:;">锤子M1</a>
<a href="javascript:;">坚果Pro</a>
</li>
<li>
<strong>价格:</strong>
<a href="javascript:;">3200</a>
<a href="javascript:;">2600</a>
<a href="javascript:;">899</a>
<a href="javascript:;">2799</a>
<a href="javascript:;">2299</a>
</li>
<li>
<strong>屏幕:</strong>
<a href="javascript:;">399</a>
<a href="javascript:;">600</a>
<a href="javascript:;">800</a>
<a href="javascript:;">1200</a>
</li>
</ul>
<script type="text/javascript">
(function(){
var nav = document.querySelector('nav');
var li = document.querySelectorAll('li');
var ids = [];
for(var i = 0; i <li.length; i++){
setClick(li[i],i);
}
function setClick(parent,index){
var option = parent.getElementsByTagName("a");
for(var i = 0; i < option.length; i++){
/*
建一个数组
*/
option[i].onclick = function(){
for(var i = 0; i < option.length; i++){
option[i].className = "";
}
this.className = "show";
var span = ids[index];
if(ids[index]){
span.children[0].innerHTML = this.innerHTML;
return;
}
span = document.createElement("span");
var a = document.createElement("a");
var strong = document.createElement("strong");
a.innerHTML = "x";
a.href="javascript:;";
a.onclick = function(){
nav.removeChild(span);
ids[index]="";
/*
删除元素清空数组对象位
*/
for(var i = 0; i < option.length; i++){
option[i].className = "";
}
}
strong.innerHTML = this.innerHTML;
span.appendChild(strong);
span.appendChild(a);
ids[index] = span;
/*
元素生成之后,先存入数组的对应位
*/

/*
按照数组的顺序重新添加一遍元素
*/
for(var i = 0; i < ids.length; i++){
if(ids[i]){
nav.appendChild(ids[i]);
}
}
};
}
}
})(); 
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript实现 在光标处插入指定内容
May 25 Javascript
Firebug入门指南(Firefox浏览器)
Aug 21 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
Aug 07 Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 Javascript
用js实现放大镜的效果的简单实例
May 23 Javascript
JavaScript操作表单实例讲解(上)
Jun 20 Javascript
Javascript函数中的arguments.callee用法实例分析
Sep 16 Javascript
详解Chart.js轻量级图表库的使用经验
May 22 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 Javascript
小程序分页实践之编写可复用分页组件
Jul 18 Javascript
js get和post请求实现代码解析
Feb 06 Javascript
jQuery实现简易聊天框
Feb 08 jQuery
node文件上传功能简易实现代码
Jun 16 #Javascript
详解webpack 多入口配置
Jun 16 #Javascript
requirejs + vue 项目搭建详解
Jun 16 #Javascript
jQuery 控制文本框自动缩小字体填充
Jun 16 #jQuery
jQuery序列化后的表单值转换成Json
Jun 16 #jQuery
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
Jun 16 #Javascript
基于AngularJS实现的工资计算器实例
Jun 16 #Javascript
You might like
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
PHP session 会话处理函数
2016/06/06 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
Bootstrap中表单控件状态(验证状态)
2016/08/04 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
wxPython框架类和面板类的使用实例
2014/09/28 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
Java工程师面试集锦之Spring框架
2013/06/16 面试题
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
正科级干部考察材料
2014/05/29 职场文书
班风口号
2014/06/18 职场文书
个人合伙协议书范本
2014/10/14 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android
灵能百分百第三季什么时候来?
2022/03/15 日漫