首页 > 建站教程 > JS、jQ、TS >  JS实现商品筛选功能_javascript技巧正文

JS实现商品筛选功能_javascript技巧

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

效果图:

代码:

001<!DOCTYPE html>
002<html lang="en">
003<head>
004<meta charset="UTF-8">
005<title>Document</title>
006<style type="text/css">
007nav {
008height: 50px;
009}
010nav span {
011margin: 0 5px;
012}
013.show {
014color: red;
015}
016</style>
017</head>
018<body>
019<nav></nav>
020<ul>
021<li>
022<strong>手机:</strong>
023<a href="javascript:;">锤子T1</a>
024<a href="javascript:;">锤子T2</a>
025<a href="javascript:;">坚果U1</a>
026<a href="javascript:;">锤子M1</a>
027<a href="javascript:;">坚果Pro</a>
028</li>
029<li>
030<strong>价格:</strong>
031<a href="javascript:;">3200</a>
032<a href="javascript:;">2600</a>
033<a href="javascript:;">899</a>
034<a href="javascript:;">2799</a>
035<a href="javascript:;">2299</a>
036</li>
037<li>
038<strong>屏幕:</strong>
039<a href="javascript:;">399</a>
040<a href="javascript:;">600</a>
041<a href="javascript:;">800</a>
042<a href="javascript:;">1200</a>
043</li>
044</ul>
045<script type="text/javascript">
046(function(){
047var nav = document.querySelector('nav');
048var li = document.querySelectorAll('li');
049var ids = [];
050for(var i = 0; i <li.length; i++){
051setClick(li[i],i);
052}
053function setClick(parent,index){
054var option = parent.getElementsByTagName("a");
055for(var i = 0; i < option.length; i++){
056/*
057建一个数组
058*/
059option[i].onclick = function(){
060for(var i = 0; i < option.length; i++){
061option[i].className = "";
062}
063this.className = "show";
064var span = ids[index];
065if(ids[index]){
066span.children[0].innerHTML = this.innerHTML;
067return;
068}
069span = document.createElement("span");
070var a = document.createElement("a");
071var strong = document.createElement("strong");
072a.innerHTML = "x";
073a.href="javascript:;";
074a.onclick = function(){
075nav.removeChild(span);
076ids[index]="";
077/*
078删除元素清空数组对象位
079*/
080for(var i = 0; i < option.length; i++){
081option[i].className = "";
082}
083}
084strong.innerHTML = this.innerHTML;
085span.appendChild(strong);
086span.appendChild(a);
087ids[index] = span;
088/*
089元素生成之后,先存入数组的对应位
090*/
091 
092/*
093按照数组的顺序重新添加一遍元素
094*/
095for(var i = 0; i < ids.length; i++){
096if(ids[i]){
097nav.appendChild(ids[i]);
098}
099}
100};
101}
102}
103})();
104</script>
105</body>
106</html>

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