2016-02-23 59 views
1

我试图将li元素的高度设置为其父项的父项div。每个li:first-child根据其内容具有不同的高度。我至今是:查找每个特定元素的高度并将其设置为其父项

HTML

<div class="somediv"> 
<ul> 
<li class="someli">some content</li> 
<li class="someli"></li> 
<li class="someli"></li> 
</ul> 
</div> 
<div class="somediv"> 
<ul> 
<li class="someli">some other content</li> 
<li class="someli"></li> 
<li class="someli"></li> 
</ul> 
</div> 

jQuery的

jQuery.each(jQuery('.someli:first-child'), function() { 
var height = jQuery(this).height(); 
alert(height); 
jQuery(this).parent().parent().parent().find('.somediv').height(height); 
}); 

以上功能提醒各li:first-child适当的高度,但设置身高只有第二li:first-child所有.somediv的div。如何强制该函数将每个li:first-child的高度仅应用于该特定li的父项?

回答

2

通过.each()方法的第二次迭代,您可以找到两个.somediv元素并将第二个li:first-child的高度设置为全部。你需要使用.closest()

jQuery.each(jQuery('.someli:first-child'), function() { 
var height = jQuery(this).height(); 
alert(height); 
jQuery(this).closest('.somediv').height(height); 
}); 

此选择jQuery(this).parent().parent().parent()同时找到.somediv元素的父,并使用.find()您选择两者

+1

的有趣的是,我试图用'在这里张贴问题之前.closest'和它不断给我奇怪的结果。但现在它起作用了。并感谢解释两种方法之间的差异。干杯。 – Daniel

相关问题