dom元素按照比较项排序

   日期:2020-08-28     浏览:92    评论:0    
核心提示:这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

关于dom元素 按照一个比较项进行排序(比如dom的高度或文本值等…)

你好! 这是我第一次使用 Markdown编辑器 也是第一次写CSDN。本篇文章介绍我在学习中用到的排序,每次排序按照思路都可以进行稍微修改一下就可以使用,希望能帮助大家。

应用实例1:

简单介绍一下小程序,input输入框输入10~100的数点击按钮在(左、右)插入或删除队列元素,下方红色统计按照上方输入的数进行显示,点击排序按照显示高低(也是输入的数字)进行排序。

排序完成后的样子 内部属性也要跟随

应用实例2:

这里简单介绍一下小程序,在输入框输入姓名、年龄后插入就可插入到统计表格中,点击移入变色鼠标在表格项中移动会有高亮显示,让操作人员更清晰的分辨指哪一行,点击删除可以删除数据,下方搜索可以搜索名字,搜索到的相应行有高亮显示,关键点排序是按照年领进行排序。而且内部属性和子元素都要进行跟随排序,

这里是排序后的样子

实例1代码段:

	// 点击排序
	// 点击按钮
	$('.sortBtn').click(function() {
		// 创建两个数组
		var arr = [];
		var arr1 =[];
		$(".count div").each(function(idex) {
			// console.log($(this).height());
			// 拿到比较项放入数组
			arr[idex] = $(this).height();
			// 拿到dom
			arr1[idex] = this;
			// console.log(arr);
		});
		console.log(arr,arr1[0]);
		// 排序比较项数组
		arr.sort(function(a, b) {
			return a - b;
		});
		
		console.log(arr,arr1);
		// 循环遍历比较项数组
		arr.forEach(function(item,idex){
			// 内层循环dom数组
			arr1.forEach(function(item2,idex2){
				// 如果 比较项第一个 等于当前循环的比较项就进入
				if(arr[idex] == $(arr1[idex2]).height()){
					// 新建一个克隆dom
					var $sortDom = $(arr1[idex2]).clone(true);
					// 删除被克隆的
					$(arr1[idex2]).remove();
					// 将被克隆的插入
					$('.count').prepend($sortDom);
					// console.log($('.count').children());
					// console.log($(arr1[idex2]));
				arr1[idex2]="";
				// console.log(item);
				return;
			}
			})
			
		});

	});

此段代码中注释有详细说明具体操作,有注释掉的console.log(),这些打印的数据可以让调试更加清晰。

实例2代码段:

	// 点击开始排序
	
	$('.sortBtn').click(function(){
		// 创建两个数组 盒子
		var arr =[];
		var arr1 = [];
		
		$('.table tbody tr').each(function(idex){
			// 拿到比较项放入数组
			arr[idex] = parseInt($(this).children('td:eq(2)').text());
			// 拿到dom元素放入数组
			arr1[idex] = this;
		});
		// console.log(arr,arr1);
		// 对比较项进行排序
		arr.sort(function(a,b){
			return b - a;
		});
		// console.log(arr);
		
		// 循环遍历比较项数组
		arr.forEach(function(item,idex){
			// 内部循环dom数组
			arr1.forEach(function(item1,idex1){
				// 如果比较项数组的idex项 等于当前循环的比较项就进入
				if(arr[idex] == $(arr1[idex1]).children('td:eq(2)').text()){
					// 克隆
					var $newDom = $(arr1[idex1]).clone(true);
					// 删除被克隆的
					$(arr1[idex1]).remove();
					// 按照排序后的顺序插入
					$('.table tbody').prepend($newDom);
				}
			});
		});
	});

实例2代码 和示例一区别在于实例2代码进行排序的dom元素内有子元素有属性,但整体来说区别不大。

扯淡环节:


作者介绍:
今年大学刚毕业,大学期间学的“软件技术”专业,(疫情原因和专业学的有点浅没有框架经验和项目经验)找的工作不太好,参加培训将大学期间的 html,css,js,jQuery又重新学习两遍,发现每一遍收获都不一样。希望自己发现的一些小方法能帮助你们,个人建议如果你是初学者或初级开发真的需要多看多练,看会后可以帮我点个赞哦!!!!

++;

如果是在校大学生即将要找工作,可以跟我聊一下我会跟你分享一下我踩过的坑。 希望各位读者,工作顺利,身体健康,保护头发!!!

经典语录:我的头发在桌上,在地下,在衣服上,电脑上,就是不再我头上。

联系方式:
微信:Congcong9987
QQ: 1160005720、89677498

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服