jq遍历元素

article/2025/9/28 13:42:09

jq遍历元素

通过jq遍历元素、并控制一些元素的属性(显示/隐藏、value、src等等),是我们在开发之中比较常见的操作,也为我们的业务功能扩宽了方向,接下来我将结合近段时间在工作上的际遇粗略介绍一下一些稍稍复杂的jq遍历。

案例一

需求背景:

通过获取被点击元素,并以此为基准,遍历该元素的其他元素,控制其他元素的一些属性。

功能需求:

通过获取被点击的元素a标签,给该元素设置背景颜色,并恢复其他同级元素的初始属性:
在这里插入图片描述
如上图:点击四个tab元素之中一个,将本次被点击的a的背景设为如图颜色,并将其他三个a的背景颜色修改为图中样子.

具体功能需求描述:

在这里插入图片描述

操作步骤:

现在假设我已经点击了第一个tab标签,并且已经做出了该有的相应(背景颜色已经变了,collapse相应内容已经展开了),那么当我点击第二个tab标签后,我要实现第二个tab背景颜色变为第一个tab的背景颜色,并且第一个恢复如初,如何实现呢?
具体实现的代码如下:

	$("#myTab li a").click(function() {//给被点击的a设置背景$(this).css("background-color", "#EEEEEE");//移除向前被点击的a的样式:获取父亲节点的兄弟节点的子节点$(this).parent().siblings().children("a").css("background-color", "");}});
代码解释:

第一行代码:
获取被点击的a元素,并且设置改元素的css样式:background-color为:#EEEEEE
第二行代码:
以当前获取的元素为基准,去寻找该元素的父亲元素的兄弟元素的儿子元素(即去寻找该元素的堂兄弟元素),并去掉这些元素的背景颜色
在这里插入图片描述
在这里插入图片描述

案例二

这个案例和上一个案例的功能需求也是差不多的,只不过是有一点点小小的不同,详细的我就不一一列出来了,我只来解释一些代码。

效果图:

在这里插入图片描述

代码:
	// 控制tab的颜色、字体、iframe的src等等,第一个参数为tab的id,第二个参数为iframe的父亲div的idfunction changeEvent(tab_id,iframe_id) {console.log(tab_id);$(tab_id).children('a').css("background-color", "#4b8df8");//设置当前元素背景颜色为被点击状态$(tab_id).siblings('.toRight_li').children('img').attr('src', temp_img);//改变往后箭头结点的图片// 往后遍历同级元素:.nextAll$(tab_id).nextAll().addClass('disabled');$(tab_id).nextAll().children('a').addClass('disabled').attr('href', '1');$(iframe_id).children('iframe').attr('src',$(iframe_id).children('iframe').data("src"));//设置iframe的src$(iframe_id).removeClass('collapse').addClass('in');//展开对应 iframe// 向前检索$(tab_id).prevAll().each(function () {$(this).children("a").css("background-color", "#4b8df8");$(this).children("img").attr('src','${(img_path) }/toRight.png');$(this).children("img").css({"height":"15px" ,"margin-top":"12px","margin-left":"7px","width":"90px"});});$(iframe_id).prevAll().each(function () {var  src_obj = $(this).children('iframe').data("src");console.log(src_obj);$(this).children('iframe').attr('src',src_obj);});$(iframe_id).siblings('div').each(function () {$(this).removeClass('in').addClass('collapse');//关闭其他iframe})}
代码:$(tab_id).nextAll().children(‘a’).addClass(‘disabled’).attr(‘href’, ‘1’); 的作用:

向后遍历同级元素的子元素a,并设置类‘disabled’、设置href属性为1

代码:$(tab_id).prevAll().each(function () { }); 的作用:

向前遍历同级元素


http://chatgpt.dhexx.cn/article/43JQbsn2.shtml

相关文章

JS 遍历

目录 1. for 数组遍历2. for ... of3. forEach( )4. some( )5. every( )6. filter( )7. map( )8. find( )9. findIndex( )10. reduce( )11. reduceRight( ) 对象遍历1. for ... in2. Object.keys( )3. Object.values( )4. Object.entries( )5. Object.getOwnPropertyNames( ) 1…

数据库——数据字典

数据库——数据字典是什么? 一.数据字典以及使用场景: User表,User主体有很多属性,比如证件(身份证、居住证、港澳通行证…)地区(河北、河南、北京…)等,然后表建好了&…

数据库设计--数据字典

数据字典定义 数据字典(data dictionary)是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。分析一个用户交换的对象系统的第一步就是去辨别每一个对象,以及它与其他对象之间的关系。这个过…

解决Error: ENOENT: no such file or directory, scandir ‘xxx\node-sass\vendor‘

解决Error: ENOENT: no such file or directory, scandir xxx\node-sass\vendor 前端项目持续部署打包中出现一个奇怪的问题,记录一下。 cnpm install 安装依赖成功 cnpm run build 构建时失败了,错误表示没有 D:\andex\stofrontend\node_modules\node…

Syntax Error: Error: ENOENT: no such file or directory, scandir ‘D:

在使用npm安装node-sass的时候,可能会出现如下的报错: Syntax Error: Error: ENOENT: no such file or directory, scandir D:\work\ 解决方案是执行以下方法: npm rebuild node-sass

扫描dir目录函数之scandir()

scandir: 读取特定的目录数据头文件: dirent.h 函数定义: int scandir(const char *dir, struct dirent ***namelist, int (*select)(const struct dirent *), int (*compar)(const struct dirent**, const struct dirent**)); 说明: scandir()会扫描参数dir指定的目录文件, …

解决Error: ENOENT: no such file or directory, scandir

解决Error: ENOENT: no such file or directory, scandir xxx\node-sass\vendor 前端项目持续部署打包中出现一个奇怪的问题,记录一下。 cnpm install 安装依赖成功 npm run build 构建时失败了,错误表示没有 D:\andex\stofrontend\node_modules\nod…

Module build failed: Error: ENOENT: no such file or directory, scandir node_modules\node-sass\vendor

npm install 报错 Module build failed: Error: ENOENT: no such file or directory, scandir D:\workspaces\xxx\node_modules\node-sass\vendor npm install node-sass 或者 npm rebuild node-sass 即可 下载完成后项目成功启动。

解决Vue Disconnected from UI server errno: -4058, syscall: ‘scandir‘, code: ‘ENOENT‘,

启动vue ui时出现上述报错 查看powershell中的错误提示 发现问题出在扫描项目时项目中少了某个文件夹 解决方法:手动创建该文件 问题解决

npm安装electron时报Error: EPERM: operation not permitted, scandir.....

刚弄完vue脚手架,准备安装electron写个桌面应用,运行命令vue add electron-builder一直报错 Error: EPERM: operation not permitted, scandir C:\Users\ ,百度解释说因为没有权限操作,于是百度试各种方法, 打开黑窗口一遍遍尝试&…

解决“: no such file or directory, scandir ‘..\node_modules\node-sass\vendor“

一、报错信息 二、出现原因 在下载包完成启动项目时出现 Error: ENOENT: no such file or directory, scandir ‘D:…\signpay-admin-new\node_modules\node-sass\vendor’ 三、解决办法 重新下载node-sass包即可 npm rebuild node-sass

解决 no such file or directory, scandir ‘node_modules\node-sass\vendor 报错

运行项目突然报错【no such file or directory, scandir node_modules\node-sass\vendor】这个错误 报错说是找不到node-sass文件路径,最后找到了解决方案 错误截图如下: 重新构建一下npm rebuild node-sass包 npm rebuild node-sass 再直接运行&…

C语言测试。自己实现scandir 函数

在C语言课程的后端,讲完指针和标准文件IO处理,我会做出一个难度较大练习,题目就是, 利用标准的目录处理函数 opendir/readdir/closedir实现类似于 scandir的功能。其中接口要scandir 函数一致。 这个题目看起来简单,实…

5G物联网设备,防止黑客入侵是首要问题

5G IoT设备预计2023年将达到4900万台,研究人员启动了一些程序来防止IoT成为渗透的黑洞。开放标准被认为可以推动物联网设备的互操作性,从而使网络安全软件可以在整个网络中查询设备。许多供应商甚至希望在物联网节点中安装应用程序或代理。毕竟所有移动设…

5G技术在物联网行业的应用

2015年6月,国际电信联盟无线通信部门(ITU-R)5G 工作组第 22 次会议召开,正式将 5G 命名为 IMT-2020。 什么是5G 5G网络即第五代移动通信网络,数据传输速率远高于以前的蜂窝网络,最高可达10 Gbit/s&#xff…

当5G物联网“遇上”供水?供水行业智慧化更进一步!

伴随着5G、物联网等技术的发展,智慧水务产品数字化和智能化程度正在以前所未有的速度提升。在众多水务应用场景中,二次供水因其居民用水“最后一公里”的特殊性,成为水务智慧化的首选方向。 近期,天翼物联携手水务行业龙头企业上海…

5G 及其对物联网的影响

文章转载自网络通信频道 毫不奇怪,数字世界正在通过先进的解决方案逐渐扩展其功能。物联网不再是一项新技术,而是从制造业到教育等不同行业数字化转型战略的共同组成部分。 5G 连接目前使其在技术世界中的存在更加稳定。根据 2022 年 GSMA 的移动经济报告…

MQTT网关 5G物联网网关 PLC控制工业网关

MQTT网关,两个以上的节点之间通信的新型网关,网络节点之间通过互连来实现双向通信。支持PLC协议转MQTT,实现plc数据采集上云,物联网云平台对接,广泛应用于工业自动化plc远程监测控制。 计讯物联5G MQTT物联网网关TG463…

智慧工厂自动化智能制造对5G物联网技术应用的功能与优势

5G物联网网关应用下的5G智慧工厂自动化智能制造,依托物联网、感知、 无线、大数据云计算等高新技术,连接工厂各节点设备网络,建立数据涌道,实现采集现场生产信息远程在线实时监控,生产过程的全方位可视化和现场生产设备…

【通信】基于粒子群实现5G物联网云网络优化附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …