我正在尝试迭代以获取数据属性并将其存储到变量中,但我得到了
未捕获的SyntaxError:意外的令牌{
const monthButton = document.querySelector('.month'),
annualButton = document.querySelector('.annualy'),
price = document.querySelectorAll('.price');
monthButton.addEventListener('click', function{
for(var i=0; i>=4; i++){
const dataMonth[i] = price[i].dataset.monthly;
}
})
答案 0 :(得分:6)
您没有为功能指定参数:function{
需要更改为function(e){
。
同样,你的for循环会立即中断;将您的条件更改为i <= 4
。
同样(重新)移动const
,因为数组应该已经在循环外定义并且不是const
答案 1 :(得分:3)
您需要小于或等于:
for(var i=0; i<=4; i++){
当我小于或等于4时,将其读作
答案 2 :(得分:2)
您的匿名函数后缺少()
。
monthButton.addEventListener('click', function () { ...
答案 3 :(得分:1)
你应该编写如下脚本:
const monthButton = document.querySelector('.month'),
annualButton = document.querySelector('.annualy'),
price = document.querySelectorAll('.price');
monthButton.addEventListener('click', function(){
for(var i=0; i>=4; i++){
const dataMonth[i] = price[i].dataset.monthly;
}
})
为了解决其他问题,这是一个更新版本:
//Used var for each variable instead of const
var monthButton = document.querySelector('.month');
var annualButton = document.querySelector('.annualy');
var price = document.querySelectorAll('.price');
//replaced >= with < as this is logicly the correct one.
// removed the constant definition as it is not needed.
monthButton.addEventListener('click', function(){
for(var i=0; **i<4**; i++){
**dataMonth[i]** = price[i].dataset.monthly;
}
});
现在你的代码仍有问题,4代表什么?并根据您将值分配给dateMonth,这不一定是一个数组,如果您与我们共享HTML,我们将解决问题。