2016-02-23 60 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

相關問題