Javascript Jquery正在将prevObject:添加到数组中
我想对数组中的所有浮点数求和 当我在chrome控制台中执行此操作时Javascript Jquery正在将prevObject:添加到数组中,javascript,jquery,arrays,Javascript,Jquery,Arrays,我想对数组中的所有浮点数求和 当我在chrome控制台中执行此操作时 $("tr.project_hours").find("td.number").map(function(i,v) {return parseFloat($(v).attr("data-time")) }) 我明白了 这就是我想要的 但是,在我的代码中,我有更多的$(“tr.project_hours”),我想分别求和。 所以,我喜欢 $("tr.project_hours").each(function(){ ro
$("tr.project_hours").find("td.number").map(function(i,v)
{return parseFloat($(v).attr("data-time"))
})
我明白了
这就是我想要的
但是,在我的代码中,我有更多的$(“tr.project_hours”),我想分别求和。
所以,我喜欢
$("tr.project_hours").each(function(){
row = $(this).find('td.total')
row.html(sumInputsIn($(this).find("td.number").map(function(i,v){
return parseFloat($(v).attr("data-time"))})));
})
('td.total')是显示结果的列。问题是,最后一个代码在控制台中返回此值
[0, 0, 0, 0, 0, 0, 0, prevObject: jQuery.fn.jQuery.init[7], context: <tr>]
[0,0,0,0,0,0,0,prevObject:jQuery.fn.jQuery.init[7],上下文:]
结果就是臭名昭著的南
为什么要在数组中获取prevObject?我如何重构以摆脱它?这应该实现预期的结果:
$("tr.project_hours").each(function(index, element) {
var row = $(this).find('td.total');
var total = 0;
$(this).find("td.number").each(function (index, element) {
total += parseFloat($(v).attr("data-time"));
});
row.html(total);
});
对(数组中的项)执行
,如果您正在获取这些键,则显然不会按hasOwnProperty()
进行筛选。在这种情况下,我想您需要自己编写逻辑。在jQuery集合上调用map
的返回类型是另一个jQuery集合。如果只想访问映射中使用的函数的结果,则需要使用.toArray()
返回基础数组:
var numbersArray = $("tr.project_hours").find("td.number").map(function(i,v)
{return parseFloat($(v).attr("data-time"))
}).toArray();
换句话说,向我们展示一个HTML示例。这将生成一个包含所有tr.project_hours表行的长数组。我需要把它们分开我明白了,这个答案更旨在说明为什么你在使用jQuery.fn.map
.Love:)的结果中看到prevObject
,你成就了我的一天!使用jQuery已经3年多了,只是刚刚发现了这个!这真让我高兴!关于添加这些道具的jQuery更好的解决方案,请参见steveukx的答案
var numbersArray = $("tr.project_hours").find("td.number").map(function(i,v)
{return parseFloat($(v).attr("data-time"))
}).toArray();