javascript - 使用 jQuery 向上滑动多个 <ul> 元素

标签 javascript jquery html

我正在尝试构建一个jquery语句,它将slideUp() all <ul>兄弟元素不包含一组特定类(.clicked、.chosen)的元素。

假设我有以下嵌套 <ul>结构:

<ul class="mainmenu">
    <li>Dogs</li>
    <ul>
        <li>Fido</li>
        <li class="chosen">Barney</li>
        <li>Turbo</li>
    </ul>
    <li>Cats</li>
    <ul>
        <li>Sylvester</li>
        <li>Felix</li>
        <li>Garfield</li>
    </ul>
    <li class="clicked">Hamsters</li>
    <ul>
        <li>Chubbs</li>
        <li>Oreo</li>
        <li>Ruby</li>
    </ul>
</ul>

对于上面的例子,我只想将'Cats'<ul>滑动()元素 ('Sylvester'、'Felix'、'Garfield'),因为它的元素都没有使用 'chosen' 或 'clicked' 类。

我当前的 jquery 语句如下:

$('.mainmenu').first().siblings().not('.clicked, .chosen').slideUp();

这个以及我尝试过的其他一切都没有返回任何结果。有建议吗?

最佳答案

您的 HTML 看起来很有挑战性:)但不知何故,我已经设法创建一个查询来执行您正在寻找的内容。

如果您想检查特定元素的多个类,您可以使用 is()也是如此。

//Check li doesn't have clicked class and then filter ul next to the li 
$('.mainmenu > li').not('.clicked').next('ul').filter(function(){
  //Find the ul, if it's any of li doesn't have chosen class 
  if(!$(this).find('li').hasClass('chosen'))
  {
    return $(this);
  }
}).slideUp();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="mainmenu">
    <li>Dogs</li>
    <ul>
        <li>Fido</li>
        <li class="chosen">Barney</li>
        <li>Turbo</li>
    </ul>
    <li>Cats</li>
    <ul>
        <li>Sylvester</li>
        <li>Felix</li>
        <li>Garfield</li>
    </ul>
    <li class="clicked">Hamsters</li>
    <ul>
        <li>Chubbs</li>
        <li>Oreo</li>
        <li>Ruby</li>
    </ul>
</ul>

关于javascript - 使用 jQuery 向上滑动多个 <ul> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39632078/

相关文章:

javascript - C3 中的换行符通过 JavaScript 生成 SVG 图表

javascript - 无法阻止我的网页换行

javascript - 将滚动限制在 div [jQuery、javascript、HTML] 的 y 位置

javascript - 如何将 javascript 数组绑定(bind)到 HTML,同时允许在数组中添加和删除?

javascript - 将 Jquery 脚本与 AJAX 相结合

javascript - 为什么html调用js函数会出现html找不到变量错误?

javascript - jquery 设置带图像的背景渐变不适用于 css()

javascript - ajax响应数据未定义

javascript - 将 React Element 的字符串值的一部分设为粗体

jquery - 隐藏/显示宽度增加/减少的菜单