Javascript 确定div所在的元素数

Javascript 确定div所在的元素数,javascript,jquery,html,Javascript,Jquery,Html,假设我有: <ul> <li></li> <li> <div id="test"></div> </li> <li></li> </ul> 有没有办法从div标签中分辨出它在哪个编号li标签中 也就是说,在div中有一个返回2的javascript函数,因为它位于第二个li元素中 我意识到我可以去: 获取父级ul 检查每个li子项,直到

假设我有:

<ul>
  <li></li>
  <li>
    <div id="test"></div>
  </li>
  <li></li>
</ul>
有没有办法从
div
标签中分辨出它在哪个编号
li
标签中

也就是说,在
div
中有一个返回
2
的javascript函数,因为它位于第二个
li
元素中

我意识到我可以去:

  • 获取父级
    ul
  • 检查每个
    li
    子项,直到找到div

有没有更优雅的方法可以做到这一点?

您可以使用不同的jQuery变体


您可以使用jQuery的不同变体

您可以使用来获取
li
的索引,因为索引是以零为基础的,所以将1添加到该索引中以获取2

var $div = $('#test')
var index = $div.parent().index() + 1
您可以使用来获取
li
的索引,因为索引是以零为基础的,所以将1添加到该索引中以获取2

var $div = $('#test')
var index = $div.parent().index() + 1
您可以使用以下内容:

<ul class="level-1">
  <li class="item-i">I</li>
  <li class="item-ii">II
      <div class="text">this is the div</div>
    </li>
      <li class="item-c">C</li>
  <li class="item-iii">III</li>
</ul>
  • i
  • ii 这是分区
  • c
  • iii
$(“ul.level-1”).find(“div”).css(“背景色”、“黄色”)

取决于您需要什么…

您可以使用以下内容:

<ul class="level-1">
  <li class="item-i">I</li>
  <li class="item-ii">II
      <div class="text">this is the div</div>
    </li>
      <li class="item-c">C</li>
  <li class="item-iii">III</li>
</ul>
  • i
  • ii 这是分区
  • c
  • iii
$(“ul.level-1”).find(“div”).css(“背景色”、“黄色”)


取决于您需要什么…

为什么不
$('li:has(div)')。index()
?欢迎您。这些代码段的工作方式不同,可以返回不同的值(基于标记)。这应该说明区别:为什么不
$('li:has(div)').index()
?不客气。这些代码段的工作方式不同,可以返回不同的值(基于标记)。这应该显示出区别: