javascript - 我需要从 find() 中排除 child

标签 javascript jquery html css

HTML:

<ul>
    <li class="listExpandTrigger"><h3>2010 - present</h3></li>
    <li class="listCollapseTrigger"><h3>2010 - present</h3></li>
    <li>
    <ul class="volumeList">
        <li class="listExpandTrigger"><h3>Volume 13</h3></li>
        <li class="listCollapseTrigger"><h3>Volume 13</h3></li>
        <li>
        <ul class="issueList">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
    </ul>
    </li>
</ul>

CSS:

.listCollapseTrigger, .volumeList, .issueList{
    display: none;
}

JS:

$( 'body' ).on( 'click', '.listExpandTrigger', function(){
    $( this ).parent().find( 'ul' ).css( 'display', 'block' );
    $( this ).parent().find('.listExpandTrigger').css('display', 'none');
    $( this ).parent().find('.listCollapseTrigger').css('display', 'block');
});

我意识到使用 Javascripts 需要完成更多步骤,但我一开始就遇到了问题。我需要排除子类和 ul,或者只影响它告诉 find() 的第一个实例。现在该函数影响触发器父级内部的所有内容,这是有道理的。我只是不确定如何解决它。谢谢!

最佳答案

使用first :

$( this ).parent().find( 'ul' ).first().css( 'display', 'block' );

关于javascript - 我需要从 find() 中排除 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14507357/

相关文章:

javascript - 将 Google map 中的坐标和数据保存到数据库中

ajax - Firefox 似乎正在对并行 ajax 请求的成功函数进行排队,可能是因为 setTimeout?

jquery - 应用程序中的验证输入无效

javascript - 如何使 Angular JS 中的 ng-repeat 语句运行有限次数

javascript - 使用 jQuery 检查父复选框

javascript - 当我尝试测试本地 Meteor 包时出错

javascript - 在 HTML5 益智游戏中移动 Canvas 位置

javascript - 如何在删除节点后使用 fancytree 小部件(Yii2)重新加载整个树

javascript - 无法获取子 DOM 元素

html - SVG 路径未显示