首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按类别分列的数据属性值总数

按类别分列的数据属性值总数
EN

Stack Overflow用户
提问于 2015-01-18 19:06:25
回答 2查看 278关注 0票数 0

我正在尝试使用jQuery从列表中按数据属性名称查找总量组。类似于分组类别并找到和。

例如,我想创建这样的东西:

代码语言:javascript
复制
group1 = 3
group2 = 5
group3 = 3

从这份清单中:

代码语言:javascript
复制
<span class="data-center" data-category="group1" data-amount="1"></span>
<span class="data-center" data-category="group2" data-amount="1"></span>
<span class="data-center" data-category="group2" data-amount="2"></span>
<span class="data-center" data-category="group1" data-amount="2"></span>
<span class="data-center" data-category="group2" data-amount="2"></span>
<span class="data-center" data-category="group3" data-amount="3"></span>

我想知道是否有一些jQuery函数可以帮助实现它,比如groupByName()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-18 19:14:50

使用纯JavaScript:

Example Here

代码语言:javascript
复制
function getCategoryTotal(cat) {
    var total = 0,
        elements = document.querySelectorAll('[data-category="' + cat + '"]');

    Array.prototype.forEach.call(elements, function (el, i) {
        total += parseInt(el.dataset.amount, 10);
    });

    return total;
}

console.log(getCategoryTotal('group1')); // 3
console.log(getCategoryTotal('group2')); // 5
console.log(getCategoryTotal('group3')); // 3
票数 3
EN

Stack Overflow用户

发布于 2015-01-18 19:39:12

我猜你问过jQuery这样做的方式,我是这样问的:

代码语言:javascript
复制
$.fn.amountByData = function(dataAttr, amountDataAttr) {
    if (typeof amountDataAttr == "undefined")
        amountDataAttr = "amount";

    var dataAmountArr = new Array();

    $(this).each(function() {
        var dataAttrVal = $(this).data(dataAttr);

        if (typeof dataAmountArr[dataAttrVal] == "undefined")
            dataAmountArr[dataAttrVal] = parseInt($(this).data(amountDataAttr));
        else 
            dataAmountArr[dataAttrVal] += parseInt($(this).data(amountDataAttr));
    });

    return dataAmountArr;
};

以下是我如何实现它的jQuery方式!这提供了一个的灵活性,因为您可以选择要根据哪个数据属性计算金额,如果它没有命名为amount,也可以选择精确一个不同的and数据属性。

PS:我知道已经选择了一个答案,但与@乔希·克罗泽相反,我知道你想要一个jQuery方法来实现你的目标。

干杯,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28013618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档