当前位置:首页 > JavaScript

js实现 jquery index

2026-02-02 19:37:36JavaScript

实现 jQuery 的 index() 方法

jQuery 的 index() 方法用于获取当前元素在其同级元素中的位置索引。以下是纯 JavaScript 的实现方式:

js实现 jquery index

方法一:使用 Array.prototype.indexOf

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

方法二:遍历同级元素

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

方法三:扩展 Element 原型

Element.prototype.index = function() {
  if (!this.parentNode) return -1;
  return Array.from(this.parentNode.children).indexOf(this);
};

使用示例

// 获取某个元素的索引
let element = document.querySelector('.target');
console.log(index(element)); // 使用方法一或二
console.log(element.index()); // 使用方法三

注意事项

  1. 这些实现只考虑元素节点,忽略文本节点等其他节点类型,与 jQuery 的行为一致。
  2. 如果元素没有父节点或不在 DOM 中,返回 -1。
  3. 索引从 0 开始计数,与 jQuery 的 index() 方法行为相同。

这些方法可以替代 jQuery 的 index() 功能,适用于现代浏览器环境。

标签: jsjquery
分享给朋友:

相关文章

jquery之家

jquery之家

jQuery之家相关资源 jQuery之家是一个提供jQuery插件、教程和资源的网站,适合开发者学习和使用jQuery技术。以下是关于jQuery之家的主要内容和资源: 网站内容 提供丰富的jQ…

js 实现继承

js 实现继承

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

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

jquery获取

jquery获取

获取元素 使用jQuery选择器获取元素,通过CSS选择器或jQuery特定选择器定位目标元素。常见选择器包括ID选择器(#id)、类选择器(.class)、标签选择器(tag)等。示例: $('#…

jquery 图片

jquery 图片

jQuery 图片操作 jQuery 提供了多种方法来操作图片,包括加载、显示、隐藏、调整尺寸等。以下是一些常见的图片操作方法: 动态加载图片 使用 attr() 方法可以动态修改图片的 src 属…