不包含LIs的jQuery选择器UL
假设使用以下HTML,如何查找不包含任何lis的所有uls?IE:在这种情况下ul3和ul4 我可以看到jQuery有“has”选择器,但我看不到它的反方向?我也不明白我怎么能把我所拥有的结合起来而不去完成我所需要的不包含LIs的jQuery选择器UL,jquery,html,jquery-selectors,html-lists,Jquery,Html,Jquery Selectors,Html Lists,假设使用以下HTML,如何查找不包含任何lis的所有uls?IE:在这种情况下ul3和ul4 我可以看到jQuery有“has”选择器,但我看不到它的反方向?我也不明白我怎么能把我所拥有的结合起来而不去完成我所需要的 <div id="div1"> <ul id='ul1'> <li> </li> </ul> <ul id='ul2'> <li&
<div id="div1">
<ul id='ul1'>
<li>
</li>
</ul>
<ul id='ul2'>
<li>
</li>
</ul>
<ul id='ul3'>
</ul>
<ul id='ul4'>
</ul>
</div>
我也不明白我怎么能把我所拥有的结合起来而不去完成我所需要的
<div id="div1">
<ul id='ul1'>
<li>
</li>
</ul>
<ul id='ul2'>
<li>
</li>
</ul>
<ul id='ul3'>
</ul>
<ul id='ul4'>
</ul>
</div>
据我所知,这很简单:
$('ul:not(:has(li))')
我也不明白我怎么能把我所拥有的结合起来而不去完成我所需要的
<div id="div1">
<ul id='ul1'>
<li>
</li>
</ul>
<ul id='ul2'>
<li>
</li>
</ul>
<ul id='ul3'>
</ul>
<ul id='ul4'>
</ul>
</div>
据我所知,这很简单:
$('ul:not(:has(li))')
使用选择器(如果您确定没有文本节点的后代)
否则你可以用
$('ul').filter(function() { return ! $(this).find('li').length; });
使用选择器(如果您确定没有文本节点的后代)
否则你可以用
$('ul').filter(function() { return ! $(this).find('li').length; });
为什么会有一个没有项目的列表?为什么会有一个没有项目的列表?:)我在jQuery文档页面上测试了它:不是。但是,每个
ul
页面上都有一个li
,所以可以肯定的是,我也尝试了p
和strong
。您的版本存在的问题是contains
在这里不合适,而has
是contains
在ul
的文本后代中查找文本字符串,而不是子标记。:)我在jQuery文档页面上测试了:not。但是,每个ul
页面上都有一个li
,所以可以肯定的是,我也尝试了p
和strong
。您的版本存在的问题是contains
在这里不合适,而has
是contains
在ul
的文本后代中查找文本字符串,而不是子标记。