前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原生JS如何获取当前元素属于父元素第几个子元素

原生JS如何获取当前元素属于父元素第几个子元素

原创
作者头像
IT工作者
发布2022-01-26 11:17:21
10.1K0
发布2022-01-26 11:17:21
举报
文章被收录于专栏:程序技术知识程序技术知识

包含文本和注释节点

原生JS有一个常见的小技巧那就是通过元素的previousSibling 属性,额外需要注意的是该属性会遍历text节点,即回车键。

从零开始我们可以这样的代码获取到一个元素属于父元素的第几个子元素。

代码语言:javascript
复制
var child = this;
while( (child = child.previousSibling) != null ) 
    i++;

案例代码如下:

Html:

代码语言:javascript
复制
<ul id="ul"><li>123</li><li id="a">a</li><li>b</li><li>c</li></ul>

JS:

代码语言:javascript
复制
var child = document.getElementById("a");
var i = 0;
while((child = child.previousSibling) != null) i++;
console.log(i) //console 1

通过循环遍历previousSibling 属性是否为null这个小技巧,就可以获取到当前元素在父元素中的位置了。

不包含文本节点和注释节点

实现代码如下:

代码语言:javascript
复制
var child = document.getElementById("a");
var parent = child.parentNode;
var index = Array.prototype.indexOf.call(parent,child);
console.log(index)//1

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 包含文本和注释节点
  • 不包含文本节点和注释节点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档