我需要编写一个 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还有
最佳答案
合并:has()和 > (immediate child)选择器,像这样:
$('ul:has( > li.selected)')
您可以在此处查看演示,仅当直接子级具有 class="whatever"时才匹配,如果没有 >,则如果任何后代具有该类,它就会匹配。
或者,走另一条路:
$("li.selected").parent("ul");
这将找到仅具有该类的所有直接 .parent() 元素。
关于javascript - 如果 ul 中的任何 li 有类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56455407/