我只是开始使用JavaScript而我无法弄清楚如何在每次点击时将索引选择器增加1。
以下代码给出了索引6,但我希望每次单击都会增加此索引:
ddpClient.call("livechat:registerGuest",[{"token":authToken,"name":"test1","email":"test2@gmail.com","department":department._id},25],function(err, info){
});
这是完整的代码:
var nextCompanyLabel = 6;
label: label[nextCompanyLabel++],
所有帮助将不胜感激!
答案 0 :(得分:2)
每次点击都会将nextCompanyLabel重新初始化为6,因此增量不会成立。将初始化语句移到事件处理函数之外。
var nextCompanyLabel = 6; //reinitializing nextCompanyLabel, remove this line.
var newDataset = {
label: label[nextCompanyLabel++],
答案 1 :(得分:2)
您每次都会得到答案6,因为每次用户点击时,变量var nextCompanyLabel
都会明确赋予值6。
即,
var nextCompanyLabel = 6;

稍后当你递增它时,你使用的是后缀增量,因此你的值总是为6。
在函数外面声明var nextCompanyLabel = 6;
<或者>将其设为静态。
这可以解决您的问题。
答案 2 :(得分:1)
您可以尝试在点击功能之外初始化nextCompanyLable
变量,如下所示:
var nextCompanyLabel = 6;
$('#addDataset').click(function() {
var background = randomColor(0.5);
var newDataset = {
label: label[nextCompanyLabel++],
borderColor: background,
backgroundColor: background,
pointBorderColor: background,
pointBackgroundColor: background,
pointBorderWidth: 1,
fill: false,
data: [],
};
for (var index = 0; index < config.data.labels.length; ++index) {
newDataset.data.push(randomScalingFactor());
}
config.data.datasets.push(newDataset);
window.myLine.update();
});
答案 3 :(得分:0)
假设您的标签数组要在代码之前的某处定义,您应该在回调函数之外初始化 nextCompanyLabel ,在每次点击事件中更新其值,使得索引不会#39; t走出数组的边界(例如使用modulo&#34;%&#34;运算符):
var nextCompanyLabel = 6;
$('#addDataset').click(function() {
var background = randomColor(0.5);
nextCompanyLabel = (nextCompanyLabel + 1) % label.length;
var newDataset = {
label: label[nextCompanyLabel],
borderColor: background,
backgroundColor: background,
pointBorderColor: background,
pointBackgroundColor: background,
pointBorderWidth: 1,
fill: false,
data: [],
};
for (var index = 0; index < config.data.labels.length; ++index) {
newDataset.data.push(randomScalingFactor());
}
config.data.datasets.push(newDataset);
window.myLine.update();
});
&#13;