Javascript 如何在jquery中对for循环求和?
我需要显示来自两个动态div的值的总和,但下面我提到了div的静态版本。 任何人都可以帮我解决这个小小的jquery难题:Javascript 如何在jquery中对for循环求和?,javascript,jquery,html,Javascript,Jquery,Html,我需要显示来自两个动态div的值的总和,但下面我提到了div的静态版本。 任何人都可以帮我解决这个小小的jquery难题: $(文档).ready(函数(){ arr=$('#cover div p').map(函数(){ 返回$(this.html(); }); 对于(i=0;idiv>p').map(函数(){ 返回$(this.html(); }); var-res=0; 对于(i=0;i
$(文档).ready(函数(){
arr=$('#cover div p').map(函数(){
返回$(this.html();
});
对于(i=0;i
滑块
{
背景颜色:蓝色;
颜色:白色;
填充物:5px10px;
利润率:10px;
}
#结果总计
{
背景颜色:绿色;
填充:20px 10px;
利润率:10px;
颜色:白色;
}
100
200
这里有几个问题。首先,在使用map()
时,应该调用get()
,只获取返回的值数组,而不是整个jQuery对象集合
其次,当您首先将res
设置为数组中的值,然后重新定义res
并再次将值添加到数组中时,您将使总数翻倍。。。出于某种原因。你也在毫无理由地循环两次;一次创建数组,然后再次通过数组。只需循环一次
最后,在处理动态内容时,您需要在添加元素后执行此求和逻辑。因此,将其放置在函数中,并在必要时调用它
实现这一点的最简单方法是在each()
循环中创建一个total
变量,该变量随p
的文本值递增,如下所示:
$(文档).ready(函数(){
//添加dymamic.slider p元素后:
calculateAndDisplayTotal();
});
函数calculateAndDisplayTotal(){
var合计=0;
$(#封面分区p')。每个(功能(){
total+=parseInt($(this).text(),10);
});
$('resultTotal')。文本(总计);
}
滑块{
背景颜色:蓝色;
颜色:白色;
填充物:5px10px;
利润率:10px;
}
#结果总计{
背景颜色:绿色;
填充:20px 10px;
利润率:10px;
颜色:白色;
}
100
200
工作示例
$(文档).ready(函数(){
arr=$('#cover>div>p').map(函数(){
返回$(this.html();
});
var-res=0;
对于(i=0;i
100
200
OP提到这是“两个动态div”,我认为这意味着它们将在加载DOM后添加到DOM中。这个代码能解释这个吗?它不能。但是,需要更改的只是将逻辑放入函数中,然后在将.slider p
元素添加到DOM后调用该函数。我对问题进行了编辑,以显示一个更合适的示例,谢谢。实际上,在使用OP的for
loop@charlietfl同意,但OP也在使用map()
Right,但结果对象确实有长度。这不是一个关键问题…在OP的情况下是双向的