javascript - jQuery:相同标记名的元素位置/索引

标签 javascript jquery

这是一个示例元素

<div id="random_parent">
  <h1></h1>
  <h2></h2>
  <h2></h2>
  <h1 class="target"></h1>
  <h2></h2>
  <h2 class="target"></h2>
  <h2></h2>
</div>

现在我创建这两个 jQuery 对象:

var j_h1 = $("#random_parent h1.target");
var j_h2 = $("#random_parent h2.target");

我需要一个函数,它输出父类中元素的位置/索引。示例:

posElement(j_h1) == 2 // The second child with the tagname h1
posElement(j_h2) == 4 // The fourth child with the tagname h2

如何编写这样的函数?谢谢你

最佳答案

使用 .index()函数获取相似类型的 dom 对象数组中的有效索引。

在函数的索引搜索之前使用.prop("tagName")获取当前元素的标记名。

function posElement(listItem) {
  var tmp = listItem.parent().find(listItem.prop("tagName"));
  return ($(tmp).index(listItem) + 1);
}
var j_h1 = $("#random_parent h1.target");
var j_h2 = $("#random_parent h2.target");
console.log(posElement(j_h1));
console.log(posElement(j_h2));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="random_parent">
  <h1></h1>
  <h2></h2>
  <h2></h2>
  <h1 class="target"></h1>
  <h2></h2>
  <h2 class="target"></h2>
  <h2></h2>
</div>

关于javascript - jQuery:相同标记名的元素位置/索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38266493/

相关文章:

javascript - jQuery .show() .hide() 动画问题

javascript - 有没有办法找到正则表达式的逆

javascript - 将类应用于 jquery 中的动态元素

javascript - jquery 中的循环 Action /事件

jquery - 向菜单 <li> 添加一个类,然后使用 jquery 单击链接?

javascript - 生成动态 div 并检索输入元素的值

javascript - 如何使用 javascript 和模板构建 DOM?

javascript - threeJS 将对象从 A 点移动到 B 点

javascript - AngularJS 1.x 依赖验证

javascript - 如何在asp.net中使用 'onKeyUp'属性?