jQuery如果一个元素有两个父ul
我如何检测一个元素是否有两个父uls,例如:jQuery如果一个元素有两个父ul,jquery,Jquery,我如何检测一个元素是否有两个父uls,例如: <ul> <li>Link <ul> <li>Link <ul> <li class="this">Link</li> </ul> </li> </ul> </li> <
<ul>
<li>Link
<ul>
<li>Link
<ul>
<li class="this">Link</li>
</ul>
</li>
</ul>
</li>
</ul>
但它似乎不起作用。。。有人能帮忙吗?谢谢
if ($('.this').parents('ul').length == 2)
在您上面发布的代码中,它实际上有三个,因此我怀疑您希望>1而不是==2。您的代码不起作用的原因是第一个父级
ul
的直接父级是li
,您必须这样做:
if ($('.this').parent('ul').parent('li').parent('ul') == true)
jQuery函数接受一个选择器,因此您可以这样做,从而断言有两个父级ul
:
if($('.this').parents('ul').length == 2) { ... }
if($('.this').parents('ul').length >= 2) { ... }
或者,如果您想断言至少两个父级ul
:
if($('.this').parents('ul').length == 2) { ... }
if($('.this').parents('ul').length >= 2) { ... }
使用parents()
,它不同于parents()
,它可以跨越多个级别
$('.this').parents('ul').length
试试:
if ($('.this').parent('ul').parent('ul').length > 0)
{
//your code
}
有两种方法可以做到这一点 1) 自下而上-从元素开始
if($('.this').parents('ul').length >=2) { // >= to accomodate your markup
return true;
}
2) 自上而下
就性能而言,您应该选择第一种方法,因为它不会检查每个ul子树,而只检查“.this”元素是否有2个或更多父ul。请尝试下面的代码片段: var ullength=$('.this')。父项('ul')。长度;如果(ullength==3){//您的代码}
对于实时演示而言,父级
ul
的直接父级是li
,因此这不起作用。