Javascript 动态变量增量

Javascript 动态变量增量,javascript,jquery,variables,increment,Javascript,Jquery,Variables,Increment,我有几个变量 var itemCount = 0; var pageCount = 0; var groupCount = 0; 除了这些变量外,我还有三个按钮,其中的数据属性与这三个变量相匹配 <button type="button" data-toggle="modal" data-target="#activeQ" data-count="item">ITEM</button> <button type="button" data-toggle="moda

我有几个变量

var itemCount = 0;
var pageCount = 0;
var groupCount = 0;
除了这些变量外,我还有三个按钮,其中的数据属性与这三个变量相匹配

<button type="button" data-toggle="modal" data-target="#activeQ" data-count="item">ITEM</button>
<button type="button" data-toggle="modal" data-target="#activeQ" data-count="page">PAGE</button>
<button type="button" data-toggle="modal" data-target="#activeQ" data-count="group">GROUP</button>

您只需使用
窗口['varName']
即可访问变量:

$('#activeQ').on('show.bs.modal', function (event) {
    var button = $(event.relatedTarget);
    var aCat = button.data('count');
    window[aCat+"Count"]++;
    console.log(window[aCat+"Count"]);
});

您只需使用
窗口['varName']
即可访问变量:

$('#activeQ').on('show.bs.modal', function (event) {
    var button = $(event.relatedTarget);
    var aCat = button.data('count');
    window[aCat+"Count"]++;
    console.log(window[aCat+"Count"]);
});

您根本不应该使用
eval

最好的方法是将变量保存在对象中:

var counters = {
    item: 0,
    page: 0,
    group: 0
};
$('#activeQ').on('show.bs.modal', function (event) {
    var button = $(event.relatedTarget);
    var aCat = button.data('count');
    counters[aCat]++;
    console.log(counters);
});

它避免了变量污染全局空间,并将它们保持在一起,因为它们是相关的。

您根本不应该使用
eval

最好的方法是将变量保存在对象中:

var counters = {
    item: 0,
    page: 0,
    group: 0
};
$('#activeQ').on('show.bs.modal', function (event) {
    var button = $(event.relatedTarget);
    var aCat = button.data('count');
    counters[aCat]++;
    console.log(counters);
});

它避免了变量污染全局空间,并将它们保持在一起,因为它们是相关的。

这不是对你问题的回答,但你为什么要使用
eval
?它在很多情况下都会有问题,我看不出上面使用它的理由……这不是对你问题的回答,但你为什么要使用
eval
?它在很多情况下都会有问题,我觉得上面没有理由使用它……我目前正在工作,我不得不等待这个答案的正确性。优先顺序,伙计。我现在正在工作,我不得不等着把这个答案标记正确。优先权,伙计。