当前位置:首页 > JavaScript

js实现jqueryindex

2026-02-01 14:27:27JavaScript

实现 jQuery 的 index() 方法

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

js实现jqueryindex

使用 Element.parentElementElement.children

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

js实现jqueryindex

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 的版本健壮,需根据实际需求调整边界条件处理。

标签: jsjqueryindex
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现删除

js实现删除

使用 splice 方法删除数组元素 splice 方法可以删除数组中的元素,并返回被删除的元素。它接受两个参数:起始索引和要删除的元素数量。 const array = [1, 2, 3, 4…

js实现复制功能实现

js实现复制功能实现

使用document.execCommand方法(传统方式,已逐渐被弃用) 传统方式通过document.execCommand('copy')实现复制功能,需先选中文本。以下是一个完整示例: fu…

js实现上传图片预览

js实现上传图片预览

使用FileReader实现图片预览 通过FileReader对象读取用户选择的图片文件,并将其显示在页面上。这种方法适用于现代浏览器。 // HTML部分 <input type="file…