首页 > 解决方案 > 如何获取(此)元素的父索引并将其作为值传递?

问题描述

在下面的示例中,我将如何获取<ol>包装器 div 中的父索引并将其作为值传递给 li 的 innerText ?尝试了类似 $(this).closest("ol").index() 但没有用

$("li").text("this ol's index is " + $(this).closest("ol").index());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<body>
<div>
<ol><li class="li"></li></ol>
<ol><li class="li"></li></ol>
<ol><li class="li"></li></ol>
</div>
</body>
</html>

标签: javascripthtmljquery

解决方案


您不在此处的任何事件处理或回调上下文中,因此$(this)仅引用window对象(包装在 jQuery 中。)

遍历liin 循环,然后$(this)将在回调函数中具有适当的上下文。

$("li").each(function() {
  $(this).text("this ol's index is " + $(this).closest("ol").index());
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<body>
<div>
<ol><li class="li"></li></ol>
<ol><li class="li"></li></ol>
<ol><li class="li"></li></ol>
</div>
</body>
</html>


推荐阅读