我需要编写一条if语句,如果ul中的任何li具有某个类,则需要在另一个div中插入一些文本,如果该类在ul的列表项中不存在,则需要插入不同的文字。 这是我尝试过的:
<div class="ae-dropdown dropdown">
<div class="ae-select">
<span class="ae-select-content"></span>
</div>
<ul class="dropdown-menu ae-hide">
<li class='selected'><a>Dr</a></li>
<li><a>Mr</a></li>
<li><a>Miss</a></li>
<li><a>Mrs</a></li>
<li><a>Ms</a></li>
</ul>
</div>
<div class="ae-dropdown dropdown">
<div class="ae-select">
<span class="ae-select-content"></span>
</div>
<ul class="dropdown-menu ae-hide">
<li><a>Dr</a></li>
<li><a>Mr</a></li>
<li><a>Miss</a></li>
<li><a>Mrs</a></li>
<li><a>Ms</a></li>
</ul>
</div>
JS:
var newOptions = $('.dropdown-menu > li');
newOptions.click(function() {
if ($('.dropdown-menu > li').hasClass('selected')) {
$('li.selected').closest('.ae-dropdown').find('.ae-select-content').text($('.dropdown-menu > li.selected').text());
} else {
$('li').closest('.ae-dropdown').find('.ae-select-content').text('All');
}
});
这里也是fiddle
答案 0 :(得分:2)
合并:has()和> (immediate child)选择器,如下所示:
$('ul:has( > li.selected)')
您可以在此处查看演示,仅当直子
>
或者,选择另一种方式:
$("li.selected").parent("ul");
这将仅找到具有该类的元素的所有直接.parent()。
答案 1 :(得分:0)
如果您将选择所有具有该类别的下拉列表li的长度与所有下拉列表li的长度进行比较,该怎么办?
$('.dropdown-menu > li.selected').length == $('.dropdown-menu > li).length