javascript选择其子组中的所有特定li标签

时间:2017-09-29 16:16:28

标签: javascript jquery

我得到了以下HTML:

<ul class="dropdown-menu inner">
  <li class="dropdown-header" data-optgroup="1">Header1</li>
  <li class="selected" data-optgroup="1"></li>
  <li data-optgroup="1"></li>
  <li class="dropdown-header" data-optgroup="2">Header2</li>
  <li data-optgroup="2"></li>//note no selected class here
  <li data-optgroup="2"></li>
  <li class="dropdown-header" data-optgroup="3">Header3</li>
  <li class="selected" data-optgroup="3"></li>
  <li data-optgroup="3"></li>
</ul>

我需要选择所有li的{​​{1}}类,其dropdown-header子组中至少有liselecteddata-optgroup。在这种情况下,应选择Header1Header3。我可以选择所有dropdown-header li个标签,但我不能只选择selecteddata-optgroup级至少有1个li的标签。任何有关解决方案的想法都会受到欢迎。

谢谢

1 个答案:

答案 0 :(得分:1)

对于每个dropdown-header元素,您可以使用nextUntil()在它与下一个元素之间提取li的集合...

var myTags = [];

$('li.dropdown-header').each(function() {
    if ($(this).nextUntil('li.dropdown-header').filter('li.selected').length > 0)
        myTags.push($(this).text());
});

我希望它有所帮助