所以我有这个列表在列表中的所有项目上使用相同的类名。我有一个jQuery插件,可以找到最高的元素,并使所有列表项的高度等于最高。
我想要做的是我想为每个UL
组运行该方法。我的意思是,现在jQuery正在选择所有LI
元素,即使它们在其他列表中并且使它们与最高的元素完全相同。我只希望列表项与列表中最高的元素一样高,而不是在其他列表中。
这就是我称之为它的方式,它起作用,但不是我要问的方式。
$j('.list-item').equalHeights(200); //minimum is 200px
我试过了,但结果相同:
$j('.lists').find('li').equalHeights(200);
我不确定是否必须遍历每个UL
然后以这种方式运行方法?
HTML:
<ul class="lists">
<li class="list-item">item</li>
<li class="list-item">item</li>
<li class="list-item">item</li>
<li class="list-item">item</li>
</ul>
<ul class="lists">
<li class="list-item">item</li>
<li class="list-item">item</li>
<li class="list-item">item</li>
<li class="list-item">item</li>
</ul>
<ul class="lists">
<li class="list-item">item</li>
<li class="list-item">item</li>
<li class="list-item">item</li>
<li class="list-item">item</li>
</ul>
答案 0 :(得分:6)
是的,你想要循环:
$j('.lists').each(function() {
$j(this).find('li').equalHeights(200);
});
您的$j('.lists').find('li').equalHeights(200);
已关闭,但它会在列表的所有下找到所有li
个元素,并返回包含所有这些元素的单个jQuery实例(所以,仍然整套)。上面的过程都是单独列出的。
答案 1 :(得分:0)
循环是最简单的方法,就像我一样。
但是,如果您需要指令$j('.list-item').equalHeights(200);
按预期工作,您可能需要编写自己的equalHeights
方法模拟,以首先构建所有li
s的组的集合在一个ul
内,然后分别为每个组运行高度等于逻辑。因此,您将在一个方法中拥有所有逻辑,这在您的情况下可能是更好的选择。