我得到了以下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
。任何想法都会受到欢迎。
答案 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>