Javascript 从一个。每个函数中获取值,并将其转换为不同的。每个函数

Javascript 从一个。每个函数中获取值,并将其转换为不同的。每个函数,javascript,jquery,variables,each,Javascript,Jquery,Variables,Each,我有4个子横幅显示:block;宽度:100%每个都有一个div,其中包含文本。这些div使用transform:translateY(238px)挂在父元素外部 每个保存文本的div都有不同的高度,因此我试图编写一个函数来检查每个文本div的高度,并相应地将边距应用到特定父元素的底部 到目前为止,我得到的是这个,但我不知道如何将变量reservivemargin传递到第二个each函数中,以便它与正确的父元素匹配。现在,它只是在所有子横幅上应用相同的边距。谢谢你的帮助 const resize

我有4个子横幅
显示:block;宽度:100%
每个都有一个div,其中包含文本。这些div使用
transform:translateY(238px)
挂在父元素外部

每个保存文本的div都有不同的高度,因此我试图编写一个函数来检查每个文本div的高度,并相应地将边距应用到特定父元素的底部

到目前为止,我得到的是这个,但我不知道如何将变量
reservivemargin
传递到第二个each函数中,以便它与正确的父元素匹配。现在,它只是在所有子横幅上应用相同的边距。谢谢你的帮助

const resize = () => {

  if ($(window).width() < 768) {
    $('.sub-banner-text-wrapper').each(function () {
      var textHeight = $(this).height();
      var responiveMargin = (textHeight - 62) + 25;
    });

    $('.sub-banner').each(function () {
        $(this).css("margin-bottom", responiveMargin);
    });
  }

};
$(window).on('resize', resize);
const resize=()=>{
如果($(窗口).width()<768){
$('.sub banner text wrapper')。每个(函数(){
var textHeight=$(this).height();
var responiveMargin=(文本高度-62)+25;
});
$('.sub banner')。每个(函数(){
$(this.css(“页边距底部”,responiveMargin);
});
}
};
$(窗口)。打开('调整大小',调整大小);

因此,当您在一个集合上循环时,请参考索引

var banners = $('.sub-banner');
$('.sub-banner-text-wrapper').each(function (ind) {
  var textHeight = $(this).height();
  var responiveMargin = (textHeight - 62) + 25;
  banners.eq(ind).css("margin-bottom", responiveMargin);
});
如果它恰好是一个子/父元素,那么您可以选择它

var banners = $('.sub-banner');
$('.sub-banner-text-wrapper').each(function (ind) {
  var textHeight = $(this).height();
  var responiveMargin = (textHeight - 62) + 25;
  //If a child
  $(this).find(".sub-banner").css("margin-bottom", responiveMargin);
  //or a parent
  $(this).parent().css("margin-bottom", responiveMargin);
});

因此,在循环一个集合时引用索引

var banners = $('.sub-banner');
$('.sub-banner-text-wrapper').each(function (ind) {
  var textHeight = $(this).height();
  var responiveMargin = (textHeight - 62) + 25;
  banners.eq(ind).css("margin-bottom", responiveMargin);
});
如果它恰好是一个子/父元素,那么您可以选择它

var banners = $('.sub-banner');
$('.sub-banner-text-wrapper').each(function (ind) {
  var textHeight = $(this).height();
  var responiveMargin = (textHeight - 62) + 25;
  //If a child
  $(this).find(".sub-banner").css("margin-bottom", responiveMargin);
  //or a parent
  $(this).parent().css("margin-bottom", responiveMargin);
});

也许是这样的

if ($(window).width() < 768) {
        $('.sub-banner-text-wrapper').each(function () {
          var subBanner = $(this).closest('.sub-banner').attr('class');
          var textHeight = $(this).height();
          var responiveMargin = (textHeight - 62) + 25;
          $(subBanner).css("margin-bottom", responiveMargin);
        });
    }
if($(窗口).width()<768){
$('.sub banner text wrapper')。每个(函数(){
var subBanner=$(this).closest('.subBanner').attr('class');
var textHeight=$(this).height();
var responiveMargin=(文本高度-62)+25;
$(subBanner).css(“页边距底部”,responiveMargin);
});
}

也许是这样的

if ($(window).width() < 768) {
        $('.sub-banner-text-wrapper').each(function () {
          var subBanner = $(this).closest('.sub-banner').attr('class');
          var textHeight = $(this).height();
          var responiveMargin = (textHeight - 62) + 25;
          $(subBanner).css("margin-bottom", responiveMargin);
        });
    }
if($(窗口).width()<768){
$('.sub banner text wrapper')。每个(函数(){
var subBanner=$(this).closest('.subBanner').attr('class');
var textHeight=$(this).height();
var responiveMargin=(文本高度-62)+25;
$(subBanner).css(“页边距底部”,responiveMargin);
});
}

似乎主要的问题是,您试图使用两个
。当您只需要一个时,每个
都可以:

const resize = () => {

  if ($(window).width() < 768) {
    $('.sub-banner-text-wrapper').each(function () {
      var textHeight = $(this).height();
      var responiveMargin = (textHeight - 62) + 25;

      $(this).closest('.sub-banner').css("margin-bottom", responiveMargin);
    });
  }

};
$(window).on('resize', resize);
const resize=()=>{
如果($(窗口).width()<768){
$('.sub banner text wrapper')。每个(函数(){
var textHeight=$(this).height();
var responiveMargin=(文本高度-62)+25;
$(this).closest('.sub banner').css(“margin-bottom”,responiveMargin);
});
}
};
$(窗口)。打开('调整大小',调整大小);

似乎主要的问题是,您试图使用两个
。当您只需要一个时,每个
都可以:

const resize = () => {

  if ($(window).width() < 768) {
    $('.sub-banner-text-wrapper').each(function () {
      var textHeight = $(this).height();
      var responiveMargin = (textHeight - 62) + 25;

      $(this).closest('.sub-banner').css("margin-bottom", responiveMargin);
    });
  }

};
$(window).on('resize', resize);
const resize=()=>{
如果($(窗口).width()<768){
$('.sub banner text wrapper')。每个(函数(){
var textHeight=$(this).height();
var responiveMargin=(文本高度-62)+25;
$(this).closest('.sub banner').css(“margin-bottom”,responiveMargin);
});
}
};
$(窗口)。打开('调整大小',调整大小);

看起来好像有一个沉默的反对票土匪逍遥法外。嫉妒我们的答案;)看起来我们在同一时间发布了几乎完全相同的答案,非常感谢!为我彻底清理了它。我差点就吃了!看起来有个沉默的反对党强盗逍遥法外。嫉妒我们的答案;)看起来我们在同一时间发布了几乎完全相同的答案,非常感谢!为我彻底清理了它。我差点就吃了!目标是什么?在字里行间,您试图通过添加可变的边距使所有子横幅具有相同的垂直高度。对吗?目标是什么?在字里行间,您试图通过添加可变的边距使所有子横幅具有相同的垂直高度。对吗?