javascript - 单击时获取所有 div 宽度的总和

标签 javascript jquery

我正在尝试获取页面上所有 div 宽度的总和,并在点击警报时显示它

我面临的问题是,当我再次单击按钮以显示总和时,结果返回双倍,如果我第三次再次单击,结果返回三倍,依此类推

我在 jsfiddle 中的代码 http://jsfiddle.net/Jim_Toth/enypx/

HTML

<button>Size of all divs?</button><br>
<div style="width: 100px;">REMOVE</div>
<div style="width: 150px;">REMOVE</div>
<div style="width: 200px;">REMOVE</div>
<div style="width: 150px;">REMOVE</div>
<div style="width: 100px;">REMOVE</div>


jQuery

var divs = 0;
$('button').click(function () {
    $('div').each(function () {
        divs += $(this).outerWidth(true);
    });
    alert(divs + 'px');
});

$('div').click(function () {
    $(this).remove();
});

最佳答案

在点击处理程序中,您需要重置 divs 变量的值...它也可以是局部变量

在您的例子中,divs 是一个全局变量,其初始值为 0,当您第一次单击该按钮时,它会更新为值 x - 现在共享变量的值为 x。现在,当您再次单击按钮而不是从值 0 开始时,变量值将从 x 开始。

$('button').click(function () {
    var divs = 0;
    $('div').each(function () {
        divs += $(this).outerWidth(true);
    });
    alert(divs + 'px');
});

演示:Fiddle

关于javascript - 单击时获取所有 div 宽度的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19419849/

相关文章:

javascript - 悬停时图像未切换

javascript - 选择后保持焦点

javascript - Bluebird 的 promise 和事件

jQuery 追加到列表底部

javascript - 如何自上而下滑动 JQuery 移动版

javascript - 无法从 handsontable 访问返回的 json 数据

javascript - 如何在 vue3 的 &lt;script setup> 中使用 props

javascript - 函数参数中的数组解构

javascript - 输入更改时删除内容

c# - 获取错误 Error-Server tags cannot contain <% ... %> constructs