我正在尝试计算4个不同值的总和,它们都是使用dom中的数据标签计算的,但我不知道如何获取其中四个的总值,这是我的函数。 / p>
function calculateUserPricing(initialValues: boolean) {
var displayElements = ["jsSuperUser", "jsUser", "jsResourceUser", "jsRessource"];
for (var i in displayElements) {
var element = $("div." + displayElements[i]);
var quantity = parseFloat(element.data("price"));
var users;
var total;
if (initialValues)
users = parseInt(element.data("users"));
else
element.find(".jsDisplayPrice").text(currencySymbol + " " + $.formatNumber(quantity * users, lineCurrencyFormat));
}
for (var i in displayElements) {
total += $(displayElements[i]);
element.find(".jsDisplayTotal").text(currencySymbol + " " + $.formatNumber(total, lineCurrencyFormat));
}
}
最后一点是我尝试获取值,但无济于事。
这是html,每个显示自己总值的元素看起来像这样,有4个这样的盒子,我需要他们的grandsum这是被归类为“jsDisplayTotal”的那个,显示各个盒子的本地总数,它们看起来都像这样:
<div class="container jsRessource" int:title="Ressource" data-price="{../@resource-sys}"
data-users="{@resources}">
<div class="box boxSmTxt">
<xsl:text><int:text>Ressource</int:text></xsl:text>
</div>
<div class="boxLgTxt">
<xsl:value-of select="@resources" />
</div>
<span class="prMnd">
<xsl:value-of select="../@resource"></xsl:value-of>
<xsl:text> <int:text>/ måned</int:text></xsl:text>
</span>
<div class="priceBox">
<span class="price">
<span class="prMnd">
<span class="jsDisplayPrice" id="resourcePrice">
</span>
<xsl:text> <int:text>i alt</int:text></xsl:text>
<br/>
<xsl:text><int:text>Totalsum:</int:text> </xsl:text>
<span class="jsDisplayTotal"></span>
</span>
</span>
</div>
</div>
编辑:值得注意的是,四个值(价格)存储在每个“.jsDisplayPrice”div中,该div显示特定价格类别的总和,但是必须添加所有这四个价格总而言之。
EDIT2:尝试了一些东西,但它不起作用,只打印出0,任何反馈都会受到赞赏,代码示例如下:
var totalElement = $('.jsDisplayTotal');
function calculateTotal() {
var total = 0;
$('.jsDisplayPrice').each(function() {
total += parseInt($(this).val());
});
totalElement.text(currencySymbol + " " + $.formatNumber(total, lineCurrencyFormat));
}
calculateTotal();
这是4个用户类别中的1个,我试图将其与孙子的总和相结合
第一个大数字是用户数量,下面的数字“19”是静态数字,此类别的每个用户将花费多少,下一行是此特定类别的当前总价格与价格*数量,这是jsDisplayPrice .div,最后一行应该是这个特定类别的总数,还有3个组合,即所有4个用户类别的总数。
感谢阅读。
答案 0 :(得分:1)
尝试:
var total = 0;
for (var i in displayElements) {
var element = $("div." + displayElements[i]);
var quantity = parseFloat(element.data("price"));
var users;
total += quantity;
}
element.find(".jsDisplayTotal").text(currencySymbol + " " + $.formatNumber(total, lineCurrencyFormat));
答案 1 :(得分:0)
我设法通过更改现有的calculateUserPricing()
函数
function calculateUserPricing(initialValues: boolean) {
var displayElements = ["jsSuperUser", "jsUser", "jsResourceUser", "jsRessource"];
var total = 0;
for (var i in displayElements) {
var element = $("div." + displayElements[i]);
var quantity = parseFloat(element.data("price"));
var users;
if (initialValues)
users = parseInt(element.data("users"));
else
users = $(".entries tr.jsSuperUsers").length;
var subtotal = quantity * users;
total = total + subtotal;
element.find(".jsDisplayPrice").text(currencySymbol + " " + $.formatNumber(subtotal, lineCurrencyFormat));
}
element.find(".jsDisplayTotal").text(currencySymbol + " " + $.formatNumber(total, lineCurrencyFormat));
}
将它合并到现有函数中更容易,更简单,因为calculateUserPricing
函数的值已经格式化,因此无法将其识别为有效数字