jquery实现页内搜索、css实现页内排序

14 篇文章 0 订阅

一、查询功能

关于查询的CSS:

.category .category-item li.hide-li{display:none;}

关于查询的JS:

$(function(){
	//记录状态
	 if(!sessionStorage.getItem("catagoryMore")){
    	 $(".category-li li").each(function(i,e){
	    	 if($(e).index() > 10) $(e).addClass("hide-li");
	     })
	    $(".catagory-more").text("展开");
    }
	//点击显示与隐藏
	$(".catagory-more").click(function(){
    	$(".noResult").remove();
    	if($(this).text().trim() == "展开"){ 
    		$(".category-li li").removeClass("hide-li")
    	}else{
    		$(".category-li li").each(function(i,e){
   	    	   if($(e).index() > 10) $(e).addClass("hide-li")
   	     	})
    	}
    	$(this).text().trim() =="展开" ? $(this).text("折叠"):$(this).text("展开")
    	sessionStorage.setItem("catagoryMore","catagoryMore");
    })
    
	 //搜索框值有变化即触发列表查询
    $("#item-search").bind("input propertychange",function(event){
    	categorySearch();
    });
}//栏目列表左侧页内搜索
function categorySearch(){
	$(".category-li li").removeClass("hide-li").removeClass("show-li");
		$(".catagory-more").text("折叠")
	var tempKey = $("#item-search").val();
	var reg = new RegExp(tempKey,"ig");
	$(".category-li li").each(function(i,e){
		if(isNull($(e).find("a").text().trim().match(reg))) $(e).addClass("hide-li");
	})
	
}

HTML:

<form class="search-item-wrap">
	<input type="text" id="item-search" class="" placeholder="&emsp;输入查询的栏目">
	<input type="button" onclick="categorySearch()" class="fr tj" value="">
</form>
<div class="category-titwrap clear">
	<b class="category-tit fl">栏目标题</b> 
	<b class="fr row-num">栏目条数<span class="icon-shuangjiantouxia iconfont"></span></b> 
</div>
<ul class="category-li category-li-cn clear">
	<li class="active clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">28</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">2</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">3</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">3</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">5</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">28</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">28</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">2</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">10</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">28</span></span>
	</li>
	<li class="clear order">
		<a href="#"><b>论文</b></a>
		<span class="category-times mainColor">(<span id="1">28</span></span>
	</li>
</ul>
<a class="catagory-more">折叠</a>

二、利用CSS实现列表的排序(flex)

相关CSS:

.category .category-li{
	display:flex;
	flex-wrap: wrap;//为了让内容撑满后自动换行,默认是不换行的
}
.category .category-item li{flex-basis: 100%;}//让li撑起来

相关js:

$(function(){
	var nums = 0;
	$(".row-num").click(function(){
		var arrs =[];
		var lis =$(".category-li li");
		if(isNull(lis.attr("dataid"))){
			$(".category-li li").each(function(i,e){
		    	$(e).attr("dataid",$(e).find(".category-times span").text());
			})
		}
		
		nums++;
		$(".category-li li").each(function(i,e){
	        // console.log(i);
	        var id = $(e).attr("dataid");
	        if (nums % 2 == 0) {
	        	//升序
	        	lis[i].style.order = -id;
	        	//修改按钮的箭头图标
	        	$(".row-num span").removeClass("icon-xiangshangshuangjiantou");
	            $(".row-num span").addClass("icon-shuangjiantouxia");
	        } else {
	        	//降序
	        	lis[i].style.order = id;
	        	$(".row-num span").addClass("icon-xiangshangshuangjiantou");
	            $(".row-num span").removeClass("icon-shuangjiantouxia");
	            
	        }
	    })
	})
})

三、页面显示效果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Flask前端页面实现表格数据连接db文件排序,可以使用以下步骤: 1. 创建一个Flask应用程序,并在其中导入适当的模块和库,例如: ``` from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy ``` 2. 在应用程序中配置数据库连接,并创建一个SQLAlchemy对象。例如: ``` app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db' db = SQLAlchemy(app) ``` 3. 创建一个数据模型,并使用SQLAlchemy创建数据库表格。例如: ``` class Product(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100)) price = db.Column(db.Float) category = db.Column(db.String(50)) ``` 4. 在Flask路由中查询数据库并获取数据。例如: ``` @app.route('/') def index(): products = Product.query.all() return render_template('index.html', products=products) ``` 5. 在前端页面上使用HTML和CSS创建一个表格,然后使用Flask模板引擎将数据填充到表格中。例如: ``` <table> <tr> <th>Name</th> <th>Price</th> <th>Category</th> </tr> {% for product in products %} <tr> <td>{{ product.name }}</td> <td>{{ product.price }}</td> <td>{{ product.category }}</td> </tr> {% endfor %} </table> ``` 6. 添加一个排序功能,使用户能够按照名称、价格或类别对数据进行排序。可以使用JavaScriptjQuery实现功能,并添加一个路由来处理排序请求。例如: ``` @app.route('/sort/<field>') def sort(field): if field == 'name': products = Product.query.order_by(Product.name).all() elif field == 'price': products = Product.query.order_by(Product.price).all() elif field == 'category': products = Product.query.order_by(Product.category).all() else: products = Product.query.all() return render_template('index.html', products=products) ``` 7. 在前端页面上添加一个排序链接,使用户可以点击链接来按照不同字段进行排序。例如: ``` <a href="{{ url_for('sort', field='name') }}">Sort by Name</a> <a href="{{ url_for('sort', field='price') }}">Sort by Price</a> <a href="{{ url_for('sort', field='category') }}">Sort by Category</a> ``` 这样就可以在Flask前端页面实现表格数据连接db文件排序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值