找到每个元素的高度并将其设置为它的父元素

时间:2016-02-23 20:03:22

标签: jquery html find parent

我试图将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的父级?

1 个答案:

答案 0 :(得分: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()选择它们