jQuery找到某个类的前一个li

时间:2017-10-31 18:13:57

标签: javascript jquery

我得到了以下HTML:

<ul class="dropdown-menu inner">
  <li class="dropdown-header" data-optgroup="1"><a></a>Header1</li>//this is needed
  <li><a></a></li>
  <li><a></a></li>//I am here
  <li class="dropdown-header" data-optgroup="2"><a></a>Header2</li>
  <li><a></a></li>
  <li><a></a></li>
</ul>

我需要获得li的{​​{1}}课程,该课程位于所点击的dropdown-header的上方。如果单击li a li,则应忽略它。应选中dropdown-header li 1。我尝试了以下方法:

data-optgroup

但是它说找不到我的$(document).on('click', 'li a', function (e) { var html = $($this[0].parentNode).prev('.dropdown-header');//closest()? console.log($($this[0].parentNode).html()); }); 所以它是dropdown-header。任何想法都会受到欢迎。

1 个答案:

答案 0 :(得分:3)

您可以结合使用:not('dropdown-header')parent()'和.prevAll()来完成您的需要。

$("li:not('.dropdown-header') a").click(function() {
  console.log($(this).parent().prevAll('li.dropdown-header').data('optgroup'))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="dropdown-menu inner">
  <li class="dropdown-header" data-optgroup="1">
    <a>1</a>Header1</li>
  <li>
    <a>2</a>
  </li>
  <li>
    <a>3</a>
  </li>
  <li class="dropdown-header" data-optgroup="2">
    <a>4</a>Header2</li>
  <li>
    <a>5</a>
  </li>
  <li>
    <a>6</a>
  </li>
</ul>