首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用vanilla js使用箭头键遍历嵌套的uls时,跳过ul的第一个li

在使用vanilla js遍历嵌套的uls时,可以通过使用箭头键来实现跳过ul的第一个li。具体的实现步骤如下:

  1. 首先,获取到所有的ul元素,并将其存储在一个数组中。
  2. 遍历这个数组,对每个ul元素进行处理。
  3. 对于每个ul元素,获取到它的所有li元素,并将其存储在一个新的数组中。
  4. 对于这个新的数组,使用箭头键来遍历li元素。
  5. 当按下箭头键时,判断当前焦点所在的li元素是否是ul的第一个li元素。
  6. 如果是第一个li元素,则将焦点跳过该li元素,直接将焦点移动到下一个li元素。
  7. 如果不是第一个li元素,则正常处理箭头键的移动操作。

这样就可以实现在遍历嵌套的uls时跳过ul的第一个li元素。

关于vanilla js的使用,它是指纯粹的JavaScript,没有使用任何框架或库。它具有以下优势:

  • 简单易学:由于没有额外的框架或库,使用纯JavaScript进行开发更加直观和简单。
  • 轻量级:没有额外的依赖,所以文件大小较小,加载速度快。
  • 兼容性好:由于是原生JavaScript,所以兼容性较好,可以在各种浏览器和设备上运行。

使用vanilla js遍历嵌套的uls时,可以使用以下腾讯云产品进行辅助开发:

  • 腾讯云云服务器(CVM):提供可扩展的计算能力,用于部署和运行应用程序。
  • 腾讯云对象存储(COS):用于存储和管理大规模的非结构化数据,如图片、视频和文档。
  • 腾讯云数据库(TencentDB):提供可扩展的数据库服务,包括关系型数据库和NoSQL数据库。
  • 腾讯云函数计算(SCF):无服务器计算服务,用于按需运行代码,无需管理服务器。

以上是对使用vanilla js遍历嵌套的uls时跳过ul的第一个li的完善且全面的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【jQuery进阶】子菜单插件Slight Submenu

插件特点: 非常容易使用,只有几KB大小,完全控制每一个环节 几乎没有CSS 多级嵌套子菜单,每个嵌套本身(完全控制,再次) 内联CSS...选项允许css来进行内联 自定义场景,深层嵌套(松散,结构甚至凹凸不平,没有双关语意) 兼容所有浏览器(记住,jQuery2 *及以上不支持<IE9,如果您使用是,对于那些旧浏览器不支持...) 插件选项和用法: 要使用你需要> = 1.8jQuery和插件本身插件: 1 2 如果你不使用内联CSS(插件选项),有一些强制性CSS,你可能想要从包括或复制内容...the LIs with submenu ULs topLiClass: '', // class for the top UL LIs topLiWithUlClass: 'li-with-ul

1.6K20

AJAX培训笔记_js基础笔记

-->verify1.js 5、不使用jquery框架,直接使用ajax异步对象XMLHttpRequest对象去实现ajax应用 步骤: A:创建XMLHttpRequest对象 B:注册回调函数...; //将记录间隔显示不同颜色 //:odd(单数) even(双数) var uls = $("li:even"); //alert(uls.length); //5 /* uls.each(function...).ready(function() { //var uls = $("ul"); var as = $("ul>a"); as.click(function() { //取得当前点击ul var...:jqueryAuto.js F:编写补全框样式:使用jscss方法 G:增加键盘事件:jqueryAuto.js---》jqueryAuto1.js //定义一个当前高亮显示节点索引号 var...(val) //匹配所有的元素 val() val(val) //匹配第一个元素 jquery中相当于jsonload方法 //jQuery(function() $(document).ready

6.5K10
  • jQuery中筛选&文档处理——案例

    那么我们用一个变量来接收一下ul所有li标签: var uls = $("ul>li"); first():获取匹配第一个元素 First第一个,我们来试一下first作用是什么?...ul第一个li背景色改变了。...好不好用 uls.last().css("background","yellow"); 现在ul第一个li  和 最后一个li都改变了背景色 2eq(N):获取匹配第N或-N个元素 获取到数组中指定某个元素...那么我们来看一下具体怎么写: uls.eq(1).css("background","yellow"); 这个表示找到数组中下标为1 也就是数组中第二个li 当N为大于-1数字,表示数组元素下标...首先,我们要结合上面讲过过滤找到title属性值为b标签,然后使用before在标签之前添加新li $("ul>li").filter("[title=b]").before("这个是新添加数据

    2.8K30

    Python爬虫之xpath语法及案例使用

    我们在写Python爬虫,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数据解析方法,也就是本章要介绍Xpath表达式。...最初是用来搜寻 XML 文档,但同样适用于 HTML 文档搜索。所以在做爬虫完全可以使用 XPath 做相应信息抽取。 XPath 选择功能十分强大,它提供了非常简洁明了路径选择表达式。...表示选取当前标签节点。 我们先定位 ul 元素节点得到一个列表,打印当前节点列表得到第一个 ul, 接着打印 ul 节点子节点 li,text()输出。...(uls,encoding='gbk').decode('gbk')) # 循环拿到图片名、图片地址,拼接请求再次下载到图片 for ul in uls:...for ul in uls: city_name = ul.xpath('.

    1K20

    Vue源码之mustache模板引擎(二) 手写实现mustache

    ) } return tokens } 提取特殊符号 用上一个版本试一下,嵌套数组 const templateStr = ` {{#arr}} <li...tokens才对 实现嵌套tokens 关键:定义一个收集器collector ,一开始指向要返回 nestTokens数组,每当遇到 #,则把它指向新位置,遇到 /,,又回到上一阶,且数组是引用变量...将tokens数组结合数据解析成dom字符串 实现简单版本 直接遍历tokens数组,如果遍历元素第一个标记是 text,则直接与要返回字符串相加,如果是 name,则需要数据 data中把对应属性加入到要返回字符串中..., result += data['job.salary'] 但是这样是不行,JavaScript不支持对象使用数组形式,下标为 x.y形式 那么该怎么办呢?...数据以及模板字符串 const templateStr = ` {{#arr}} {{name}}喜欢颜色是

    1K20

    Python爬虫之xpath语法及案例使用

    Python爬虫之xpath语法及案例使用 ---- 钢铁侠知识库 2022.08.15 我们在写Python爬虫,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数据解析方法...最初是用来搜寻 XML 文档,但同样适用于 HTML 文档搜索。所以在做爬虫完全可以使用 XPath 做相应信息抽取。 XPath 选择功能十分强大,它提供了非常简洁明了路径选择表达式。...表示选取当前标签节点。 我们先定位 ul 元素节点得到一个列表,打印当前节点列表得到第一个 ul, 接着打印 ul 节点子节点 li,text()输出。...(uls,encoding='gbk').decode('gbk')) # 循环拿到图片名、图片地址,拼接请求再次下载到图片 for ul in uls:...for ul in uls: city_name = ul.xpath('.

    98230

    Js如何删除所有子元素以及当前元素

    示例展示 deleteallelem 具体描述 在原生js当中,html内容元素总是以嵌套关系存在于网页中,因此,可以通过遍历方法访问网页里每一个元素,当然也是可以删除指定子元素 原生js...(var i = 0;i<len;i++) { // 遍历 ul.removeChild(ul.childNodes[0]); // 从第一个元素开始删除 }...ul.removeChild(ul.childNodes[i]); // 从第一个元素开始删除 } } 当你把索引为0子节点删除后那么很自然原来索引为1节点此时它索引变成...Vue编程思维,删除所有子元素,直接操作数组为空,就删除所有子元素了 // 这里用原生js实现,主要是演示操作子节点方式,在vue项目里,操作DOM的话,那使用vue...方法就可以 总结 在操作一些列表,新增和删除,或全部删除清空,是一个比较常见操作,使用原生Js全部删除操作是,通过循环遍历,一个一个删除,而在框架里,是操作数组,想要删除全部,清空数组数据就可以了

    8.4K40

    爬虫实战--拿下最全租房数据 | 附源码

    以后租房就去你家了 直接获取到所有符合要求 li 标签,拿到区域数据 需要注意我们拿到区域数据,我们只需要它拼音,即 href 中后面的部分 # 拿到所有符合要求 li 标签 soup_uls...for soup_ul in soup_uls: # 获取 ul a 标签 href 信息中区域属性 href = soup_ul.a.get('href...,将区域当做我们第一个查询条件 在第一个查询条件下,同样需要获取该条件下总记录数 是不是有点熟悉,又重复第一步工作了。...=30 self.page_size = page_size # 最大页数 self.max_pages = 100 当我们最终条件确定记录数不足3000 就可以通过遍历页码获取所有数据。...find_all('ul')[0].find_all('li', class_='fl oneline') # 赋值房屋信息 house_info['house_elevator'] = soup_li

    2.5K71

    看Zepto如何实现增删改查DOM

    = null) this.removeChild(this) }) } 遍历当前集合中元素,当该元素父节点存在时候,使用removeChild删除该元素。...当没有给定content参数,返回对象集合中第一个元素。当给定content参数,用其替换对象集合中每个元素内容。...text 获取或者设置所有对象集合中元素文本内容。当没有给定content参数,返回当前对象集合中第一个元素文本内容(包含子节点中文本内容)。...当给定content参数使用它替换对象集合中所有元素文本内容。它有待点似 html,与它不同是它不能用来获取或设置 HTML。...嘿嘿可以看到,ul原来结构不见了,被移动到了第一个wrap第一个子节点here中。

    2.5K90

    看Zepto如何实现增删改查DOM

    = null) this.removeChild(this) }) } 遍历当前集合中元素,当该元素父节点存在时候,使用removeChild删除该元素。...当没有给定content参数,返回对象集合中第一个元素。当给定content参数,用其替换对象集合中每个元素内容。...text 获取或者设置所有对象集合中元素文本内容。当没有给定content参数,返回当前对象集合中第一个元素文本内容(包含子节点中文本内容)。...当给定content参数使用它替换对象集合中所有元素文本内容。它有待点似 html,与它不同是它不能用来获取或设置 HTML。...嘿嘿可以看到,ul原来结构不见了,被移动到了第一个wrap第一个子节点here中。

    1.5K10

    JQuery第一节

    获取元素方法太少且长,麻烦。 //2. 遍历伪数组很麻烦,通常要嵌套一大堆for循环。 //3. 注册事件会覆盖。 //4. 有兼容性问题。 //5....jQuery是一个快速、轻量、功能丰富js库。 jQuery官网 http://jquery.com/ jQuery就是一个js库,使用jQuery的话,会比使用JavaScript更简单。...js库:把一些常用到方法写到一个单独js文件,使用时候直接去引用这js文件就可以了。...$(“ul li”); 使用空格,代表后代选择器,获取ul所有li元素,包括孙子等 跟CSS选择器一模一样。...li元素中,选择索引号为偶数元素 :first $(“li:first”).css(“color”, ”red”); 获取到li元素中第一个 :last $(“li:last”).css(“color

    1.6K30

    Apriso 开发葵花宝典之五 Process Builder JavaScript 篇

    嵌套另一个问题是变量名和循环。就像你通常以i作为迭代器变量开始第一个循环一样,你将继续使用j,k,l等等。...(li); return ul; } 优化循环,最常见错误之一是在每次迭代读取数组length属性,正确写法如下: var names = ['George','Ringo','Paul',...,当你需要遍历数组或对象,不要总是使用方便“for”语句。...+ arr.join('') + ''; 不要使用with语句,任何时候调用任何变量,JavaScript引擎都必须遍历with()变量 对象属性和数组项比变量慢...为了循环遍历这些项,JavaScript必须为每个项设置一个函数 使用循环,结合控制条件和控制变量变化, 在定义循环将控制条件和控制变量结合起来, 如果你只是对数组中某些项进行迭代,你可以通过翻转迭代并使用

    61560
    领券