javascript - jquery 脚本中的toggle() 作用域

标签 javascript jquery

我正在构建一个由包含隐藏描述的节点组成的技能树

单节点是这样的

<div class="node inactive-node root">
    <a href="#">Example Skill</a>
    <div class="info">
    <p class="cost">30</p>
    <div class="dropdown">
        <a href="#" class="dropdown-toggle"><b class="caret"></b></a>
           <div class="dropdown-menu">
               <a href="#">Example description</a>
           </div>
    </div>
    </div>  
</div>

下面的脚本可以明显地显示页面中的所有下拉菜单

var main = function() {     
    $('.dropdown-toggle').click( function() {
        $('.dropdown-menu').toggle(); 
    });
};

但我尝试过修复

var main = function() {     
    $('.dropdown-toggle').click( function() {
        $(this).children('.dropdown-menu').toggle(); 
    });
};

无效,我不知道为什么。我试图选择单击的下拉切换下的单个下拉菜单,但我无法理解如何操作。

最佳答案

它不是子元素。这是一个 sibling 。尝试使用 next()。

$(this).next().toggle();

或者

$(this).parent().find('.dropdown-menu').toggle();

关于javascript - jquery 脚本中的toggle() 作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570191/

相关文章:

javascript - 如何使用 lodash 中的 includes 方法检查对象是否在集合中?

javascript - 有人用 Coldbox Coldfusion 尝试过 knockoutJS 吗?有可能吗?

javascript - 使用 JavaScript 或 jQuery 获取并替换字符串的最后一个数字

javascript - 刷新 div(导致浏览重绘它)

javascript - 目标为 ="_blank"的表单 - 新窗口和加载页面

javascript - firebase 查询后数组不保存值的问题

javascript - jQuery 延迟无法解决

jquery - 带有一些隐藏选项的选择框不显示任何选项

Javascript——如何查找和替换通过嵌套数组列表匹配的文本?

javascript - 更改背景图像 css 导致添加额外的 div