当前位置:首页 > JavaScript

js实现 jquery index

2026-03-15 19:58:39JavaScript

使用原生JavaScript实现jQuery的index()功能

jQuery的index()方法用于获取当前元素在其同级元素中的位置。以下是用原生JavaScript实现类似功能的方法:

js实现 jquery index

方法一:使用Array.prototype.indexOf

js实现 jquery index

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

方法二:使用previousElementSibling遍历

function getIndex(element) {
  let index = 0;
  let prev = element.previousElementSibling;

  while (prev) {
    index++;
    prev = prev.previousElementSibling;
  }

  return index;
}

方法三:带选择器过滤的实现

function getIndex(element, selector) {
  const siblings = selector 
    ? Array.from(element.parentNode.querySelectorAll(selector))
    : Array.from(element.parentNode.children);

  return siblings.indexOf(element);
}

使用示例

<ul>
  <li>Item 1</li>
  <li class="active">Item 2</li>
  <li>Item 3</li>
</ul>

<script>
  const activeItem = document.querySelector('.active');
  console.log(getIndex(activeItem)); // 输出: 1
  console.log(getIndex(activeItem, 'li')); // 输出: 1
</script>

性能考虑

  • 方法一适合现代浏览器,利用了原生数组方法
  • 方法二在大型DOM结构中可能更高效,因为它不需要创建数组
  • 方法三提供了类似jQuery的带选择器过滤功能

注意事项

  • 这些实现返回的索引都是从0开始的
  • 如果元素不存在于父节点中,将返回-1
  • 与jQuery不同,这些实现不会自动处理文本节点和注释节点

标签: jsjquery
分享给朋友:

相关文章

js实现预览

js实现预览

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

jquery事件

jquery事件

jQuery 事件基础 jQuery 提供了一套简化的事件处理机制,允许开发者通过简洁的语法绑定、触发和管理事件。核心方法包括 on()、off()、trigger() 等,支持常见事件(如点击、悬停…

jquery删除

jquery删除

jQuery 删除元素的方法 使用 jQuery 删除 DOM 元素有多种方式,可以根据需求选择合适的方法。 remove() 方法remove() 方法会删除选中的元素及其子元素,同时移除元素上的…

jquery 函数

jquery 函数

jQuery 函数基础 jQuery 是一个快速、简洁的 JavaScript 库,通过封装原生 JavaScript 功能简化 DOM 操作、事件处理、动画等。核心函数 $() 或 jQuery()…

jquery动画

jquery动画

jQuery动画基础 jQuery提供了多种动画方法,用于创建平滑的过渡效果。常用的动画方法包括animate()、fadeIn()、fadeOut()、slideUp()和slideDown()。…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…