1
if ($("#logo-buttons-bg ul li").has("ul")){
    $(this).addClass("hide-sub-menu");
}

如何将隐藏子菜单类添加到每个内部有ul元素的#logo-buttons-bg ul li ?

4

4 回答 4

4

这应该很好:

$("#logo-buttons-bg ul li").has("ul").addClass("hide-sub-menu");
于 2013-07-18T18:06:29.387 回答
4

使用:has()选择器。

$("#logo-buttons-bg > ul > li:has(ul)").addClass("hide-sub-menu");
于 2013-07-18T18:07:48.870 回答
1

另一种方法:

$('ul').filter(function(){
    return $(this).closest('#logo-buttons-bg ul li').length;
}).addClass('hide-sub-menu');

参考:

于 2013-07-18T18:08:18.427 回答
0

:has选择至少包含一个与指定选择器匹配的元素的元素。

尝试:

$("#logo-buttons-bg > ul > li:has(ul)").addClass("hide-sub-menu");

解释

使用parent>child它选择所有元素与parent child仅选择第一个元素相比,所以现在你的目标是所有li具有父元素#lofo-buttons-bg

:has(ul)将检查这些 li 是否ul包含子标签,如果为 true,则添加该类。

于 2013-07-18T18:11:30.283 回答