我无法理解如何在jQuery中使用children()函数,我有这段代码:
jQuery('#nav li.over a.level-top').css({'padding-bottom': '26px'});
我想将#nav li.over
替换为var navLiOver = jQuery('#nav li.over');
这不起作用:
navLiOver.children('a.level-top').css({'padding-bottom': '26px'});
有人可以向我解释children()
函数的工作原理吗?
HTML code:
<ul id="nav">
<li class="level-top over">
<a class="level-top">Link1</a>
<ul class="level0">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</li>
</ul>
答案 0 :(得分:3)
相当于$('#nav li.over a.level-top')
是navLiOver.find('a.level-top')
要使padding-bottom
代码产生任何效果,您需要确保锚具有允许填充的显示模式,例如block
或inline-block
。无论您如何找到元素,都是如此。
答案 1 :(得分:2)
你可以使用find()
navLiOver.find('a.level-top');
.find()和.children()方法类似,只是后者只沿DOM树向下移动一层。
而find()
获取当前匹配元素集中每个元素的所有后代
答案 2 :(得分:0)
之间的区别
jQuery('#nav li.over a.level-top')
和
jQuery('#nav li.over').children('a.level-top')
是后者只选择直接的孩子。对于您期望的行为,请改用find()。
答案 3 :(得分:0)