javascript - 如果 ul 中的任何 li 有类

标签 javascript jquery html

我需要编写一个 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/

相关文章:

html - 与元素类型 "p:autofocus"关联的属性名称 "h:inputText"必须后跟 ' = ' 字符

javascript - javascript/jquery中的超简单动画引擎

javascript - React JS,一种表单中的两个提交按钮

html - 流体和固定头

javascript - 使用 jquery 导致网页加载时间较长

Jquery 向上滚动 anchor

html - 如何在图像上居中跨度链接

javascript - 如何重写 WebSocket send() 方法

javascript - Node.js app.js 使 css 和 js 可用

jQuery 投资组合切换搞乱位置