JS计算父元素中元素的宽度

时间:2017-11-17 17:52:04

标签: javascript jquery

出于某种原因,这个微不足道的任务给了我一个适当的头痛。

到目前为止我已经

<div class="nowrap">
  <span>Content</span>
  <span>Content</span>
  <span>Content</span>
</div>

<div class="nowrap">
  <span>Content</span>
  <span>Content</span>
</div>

-

var width = 0;
$('.nowrap').each(function() {
    width += $(this).outerWidth( true );
});
console.log(width) //1946

这给了我.nowrap父级下所有孩子的总和。但我想要的是每个.nowrap有2个单独的值 儿童。所以,如果我有3个.nowrap div,我会得到像

这样的东西
[443 totalWidth of .nowrap, 755 totalWidth of .nowrap, 457 totalWidth of .nowrap]

做什么?

https://codepen.io/umbriel/pen/JOOxeL

1 个答案:

答案 0 :(得分:1)

我意识到这是用jQuery标记的,但为了正当起见,我将提供仅使用标准函数的解决方案:

let totalWidths = Array.from(
  document.querySelectorAll('.nowrap'),
  nowrap => Array.from(
    nowrap.children,
    child => child.offsetWidth
  ).reduce((total, width) => total + width)
)

console.log(totalWidths)
<div class="nowrap">
  <span>div→ [2035] — </span>
  <span> Funky figures </span>
  <span>6'2" • 180° m² </span>
</div>

<div class="nowrap">
  <span> Sick ligatures </span>
  <span class="dlig">rf rt</span>
</div>