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 相关文章推荐
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
Feb 15 Javascript
JavaScript加强之自定义event事件
Sep 21 Javascript
jQuery中dom元素上绑定的事件详解
Apr 24 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
Feb 25 Javascript
javascript入门之数组[新手必看]
Nov 21 Javascript
浅谈angularjs依赖服务注入写法的注意点
Apr 24 Javascript
Angular2 组件间通过@Input @Output通讯示例
Aug 24 Javascript
vue select组件的使用与禁用实现代码
Apr 10 Javascript
vue+element-ui动态生成多级表头的方法
Aug 28 Javascript
js如何实现元素曝光上报
Aug 07 Javascript
聊聊鉴权那些事(推荐)
Aug 22 Javascript
layui表单提交到后台自动封装到实体类的方法
Sep 12 Javascript
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
PHP 第二节 数据类型之数值型
2012/04/28 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
农历与西历对照
2006/09/06 Javascript
json 入门基础教程 推荐
2009/10/31 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
基于FME使用Python过程图解
2020/05/13 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
python中字典增加和删除使用方法
2020/09/30 Python
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
年度考核评语
2014/01/19 职场文书
医院学雷锋活动策划方案
2014/02/15 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
班主任经验交流材料
2014/12/16 职场文书
出国导师推荐信
2015/03/25 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
社区党支部承诺书
2015/04/29 职场文书
撤诉申请怎么写
2015/05/19 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
python数字类型和占位符详情
2022/03/13 Python