Javascript jQuery查找具有特定类的前一个li
我得到了以下html:Javascript jQuery查找具有特定类的前一个li,javascript,jquery,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
<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>
但是它说它找不到我的
下拉标题
,所以它是未定义的
。任何想法都欢迎。您可以结合使用:not('dropdown-header')
,parent()
,和.prevAll()
,来完成您需要的操作
$(“li:not('.dropdown header')a”)。单击(function(){
console.log($(this.parent().prevAll('li.dropdown header')).data('optgroup'))
})
-
1校长1
-
2.
-
3.
-
4领导2
-
5.
-
6.
您可以结合使用:not('dropdown-header')
、parent()
”和.prevAll()
来完成您需要的操作
$(“li:not('.dropdown header')a”)。单击(function(){
console.log($(this.parent().prevAll('li.dropdown header')).data('optgroup'))
})
-
1校长1
-
2.
-
3.
-
4领导2
-
5.
-
6.
如果他们只想要第一个匹配,那么在.prevAll()
之后加一个.first()
就可以了。如果我只想要最后一个匹配?Preval正在选择上面的所有匹配项,而我需要的是最接近单击的li
的匹配项。在上面的示例中,单击5或6会为您提供两个optgroup值,而单击2或3会为您提供一个optgroup值。你期望什么?如果他们只想要第一个匹配,那么在.prevAll()
之后的.first()
就可以了。如果我只想要最后一个匹配?Preval正在选择上面的所有匹配项,而我需要的是最接近单击的li
的匹配项。在上面的示例中,单击5或6会为您提供两个optgroup值,而单击2或3会为您提供一个optgroup值。你在期待什么?
$(document).on('click', 'li a', function (e) {
var html = $($this[0].parentNode).prev('.dropdown-header');//closest()?
console.log($($this[0].parentNode).html());
});