如何选择jQuery中没有特定元素的元素
问题描述:
如何选择jQuery中没有特定元素的元素。我想在用户点击菜单或边栏本身之后创建一个关闭边栏,但仅限于下拉菜单。这是菜单的结构代码:如何选择jQuery中没有特定元素的元素
<li><a href="#">Menu Normal</a></li>
<li>
<a href="#">Menu Dropdown</a>
<ul class="sidebar-nav-child">
<li><a href="#">Menu-1</a></li>
<li><a href="#">Menu-1</a></li>
<li><a href="#">Menu-1</a></li>
</ul>
</li>
这里是jQuery的:
$(".sidebar-toggle").click(function(e){
e.preventDefault();
$("#wrapper").addClass('sidebar-show');
$("#sidebar, .sidebar-nav li:not(:has(.sidebar-nav-child)) a").click(function(){
$("#wrapper").removeClass('sidebar-show');
});
});
我上面的代码将仍然关闭边栏,即使我点击下拉。 预先感谢您。
答
您需要处理li
是的.sidebar-nav
直接孩子,不包含嵌套ul
:
$("#sidebar, .sidebar-nav > li:not(:has(ul)) a")
但我还没有得到明确的#sidebar
什么样的作用在这里。
标记中的#sidebar和#wrapper元素在哪里?而且,也没有可以绑定click事件的.sidebar-toggle类的元素。我们应该如何重现这一点? – Connum