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

Find height of each certain element and set it to it's 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 的父级?

通过 .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() 您选择了它们两个