当前位置:首页 > JavaScript

js实现jqueryindex

2026-02-01 14:27:27JavaScript

实现 jQuery 的 index() 方法

在 jQuery 中,index() 方法用于获取当前元素在其兄弟元素中的位置索引。以下是使用原生 JavaScript 实现类似功能的几种方法。

使用 Element.parentElementElement.children

通过获取父元素的所有子元素列表,遍历找到当前元素的索引:

function index(element) {
  if (!element.parentElement) return -1;
  const children = element.parentElement.children;
  for (let i = 0; i < children.length; i++) {
    if (children[i] === element) return i;
  }
  return -1;
}

使用 Array.prototype.indexOf

将父元素的子元素集合转换为数组,直接使用 indexOf 方法查找:

function index(element) {
  if (!element.parentElement) return -1;
  return Array.from(element.parentElement.children).indexOf(element);
}

支持选择器过滤

如果需要像 jQuery 那样支持传入选择器参数,可以扩展实现:

function index(element, selector) {
  if (!element.parentElement) return -1;
  const siblings = selector 
    ? Array.from(element.parentElement.querySelectorAll(selector))
    : Array.from(element.parentElement.children);
  return siblings.indexOf(element);
}

示例用法

const item = document.querySelector('.list-item');
console.log(index(item)); // 输出元素在父元素中的索引
console.log(index(item, '.active')); // 输出元素在符合.active选择器的兄弟元素中的索引

注意事项

  • 如果元素没有父元素(如 document 或已分离的节点),返回 -1
  • jQuery 的 index() 在不传参数时返回在所有兄弟元素中的位置,传选择器时返回在匹配元素中的位置。
  • 原生实现可能不如 jQuery 的版本健壮,需根据实际需求调整边界条件处理。

js实现jqueryindex

标签: jsjqueryindex
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEv…