获取高度并适用于每个元素失败?

时间:2015-06-18 09:34:40

标签: javascript jquery

 $.each($('.box'), function () {
     var heightOfBox = $(this).height();
     console.log(heightOfStory);
     $.each($('.line'), function () {
         $(this).css('height', heightOfBox + 'px');
     });
 });

我有一组具有不同高度的元素,我想将它设置为另一组。上面的代码失败了,因为它获得了最后一个元素的高度,而不是每个元素的高度。

http://jsfiddle.net/vmxrca1d/1/

3 个答案:

答案 0 :(得分:1)

$.each($('.box'), function (i, val) {
     var heightOfBox = $(this).height();
     $(".line").eq(i).css('height', heightOfBox + 'px');

 });
.box {
    background:red;
    width:10px;
    margin:10px;
}
.line {
    background:blue;
    width:10px;
    margin:10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box" style="height:10px;">1</div>
<div class="box" style="height:22px;">1</div>
<div class="box" style="height:40px;">1</div>
<div class="line">1</div>
<div class="line">1</div>
<div class="line">1</div>

使用 eq()

 $.each($('.box'), function (i, val) {
     $(".line").eq(i).css('height', $(this).height() + 'px');

 });

答案 1 :(得分:1)

使用eqindex设置相应元素的高度;

// Iterate over each of the element having box as class
$('.box').each(function (i, val) {
    $('.line').eq(i).height($(this).height());
    // Get the index of this element
    // Set the height of the corresponding element to the current element height
});

Demo

答案 2 :(得分:0)

试试这个..

$.each($('.box'), function (i,d) {
  var heightOfBox = $(d).height();
  console.log(heightOfBox);
$('.line:eq('+ i +')').css('height', heightOfBox + 'px');
});

Working Fiddle Here